C#中调用dll库(VC编写)

来源:互联网 发布:php正则表达式匹配url 编辑:程序博客网 时间:2024/05/25 21:34

如何在C#中调用DLL(C/C++写的)。举一个我做过的例子说明:

建立VC工程DllDemo,建立的时候选择MFC AppWizard(dll),选择Regular Dll using shared MFC Dll或者MFC Extension Dll。

现在可以写一个函数代码,在DllDemo.cpp文件中添加这些代码。也可以使用新的文件添加代码;

  1. extern “C“ __declspec(dllexport) int Add(int a,int b)  
  2. {  
  3.      AFX_MANAGE_STATE(AfxGetStaticModuleState());  
  4.      TRACE("Entering DllAdd\n");  
  5.  
  6.      return a+b;  
  7. }  

编译工程。

下面建立一个C#的WinForm程序测试DllDemo:

启动vs.net IDE,建立新的C#工程,选择WinForm应用程序。

在Form1.cs中添加引用:using System.Runtime.InteropServices;

在pulic class Form1声明的开头添加代码:

  1. [DllImport("MotorControlDll.dll",EntryPoint="Add",ExactSpelling=false,CallingConvention=CallingConvention.Cdecl)]  
  2. public static extern int Add(int a,int b); 

至于DllImport属性的用法可以察看MSDN,对于各项参数有详细的说明。

最后还要记得将DllDemo生成的位于Debug文件中DllDemo.dll文件加入到C#的WinForm程序的bin目录下。

这样就可以直接使用Add(int a,int b)函数。

这样,就完成了C#中调用dll库。