C-Sharp调用标准动态库,C-Sharp调,-Sharp调用,Sharp调用标,harp调用标准,arp调用标准动,rp调用标准动态 C-Sharp调用标准动态库----编程资料集中营--八角123--bajiao123.com
编程资料集中营
 | 网站首页 | 文章中心 | 编程资料2 | 软件下载 | BT下载 | 八卦星闻 | 音乐在线 | 在线游戏 | 免费电影 | 进入问吧 | 
C-Sharp调用标准动态库,这里讲述的是C#调用标准动态库的问题,在我以前的文件中讲到过,C#调用Win32API,原理是一样的.这里我详细讲解用C写一个标准的动态库,然后让C#调用.(本篇适合初学者,中间没有任何冗余代码,简洁明了)软件环境:VC6.0(当然其他版本的VC5也可以)1.制作标准动态库__declspec(dllexport)int__cdecladd(int,int),
您现在的位置: 编程资料,学习资料,c,c++,vc,vc++,java,jsp,j2ee,j2me,asp,php >> 文章中心 >> .NET 专区 >> C# 技术 >> 文章正文
【字体:
C-Sharp调用标准动态库   进入问吧

本站地址:http://www.bajiao123.com

作者:admin    文章来源:不详    点击数:    更新时间:2007-6-2    

C-Sharp调用标准动态库

  

 这里讲述的是C#调用标准动态库的问题, 在我以前的文件中讲到过, C#调用Win32API, 原理是一样的. 这里我详细讲解用C写一个标准的动态库, 然后让C#调用. (本篇适合初学者, 中间没有任何冗余代码, 简洁明了)
 软件环境: VC6.0(当然其他版本的VC5也可以)
 1.制作标准动态库
__declspec(dllexport) int __cdecl add(int, int);//这一句是声明动态库输出一个可供外不调用的函数原型.
int add(int a,int b) {//实现这个函数
 return a+b;
}
以上简单3行代码,声明一个add的方法, 输入参数是两个int参数,返回这两个数之和. 保存为MyLib.c
然后执行编译命令.
H:\\XSchool\\C#-School\\HowTo>cl /LD MyLib.c
Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 12.00.8168 for 80x86
Copyright (C) Microsoft Corp 1984-1998. All rights reserved.

MyLib.c
Microsoft (R) Incremental Linker Version 6.00.8447
Copyright (C) Microsoft Corp 1992-1998. All rights reserved.

/out:MyLib.dll
/dll
/implib:MyLib.lib
MyLib.obj
   Creating library MyLib.lib and object MyLib.exp

确信有以上输出, 说明编译成功生成了动态库.

 2.编写C-Sharp程序调用该动态库
using System;
using System.Runtime.InteropServices;//这是用到DllImport时候要引入的包

public class InvokeDll {
 [DllImport(MyLib.dll, CharSet=CharSet.Auto)]
 static extern int add(int a,int b);//声明外部的标准动态库, 跟Win32API是一样的.
 
 public static void Main() {
  Console.WriteLine(add(10,30));
 }
}
保存为InvokeDll.cs文件, 与MyLib.dll置于同一目录, 编译该文件.
H:\\XSchool\\C#-School\\HowTo>csc invokedll.cs
将生成Invokedll.exe, 可以执行该文件.
以上是C-Sharp调用标准动态库的全过程, 本来觉得很简单的东西, 一直都没有想写, 碰巧今日遇一朋友问及此事, 就顺便写了下来. 有什么问题可以联系zlyperson@163.net

进入问吧

本站地址:http://www.bajiao123.com

文章录入:admin    责任编辑:admin 
高级搜索
编程资料集中营