如何在C#中使用C/C++写的DLL。
2006-09-16 12:59
447 查看
如何在C#中使用C/C++写的DLL。举例说明:
建立VC工程DllDemo,建立的时候选择MFC AppWizard(dll),选择Regular Dll using shared MFC Dll或者MFC Extension Dll。
现在可以写一个函数代码,在DllDemo.cpp文件中添加这些代码。也可以使用新的文件添加代码;
extern “C“ __declspec(dllexport) int Add(int a,int b)
{
AFX_MANAGE_STATE(AfxGetStaticModuleState());
TRACE("Entering DllAdd/n");
return a+b;
}
编译工程。
下面建立一个C#的WinForm程序测试DllDemo:
启动vs.net IDE,建立新的C#工程,选择WinForm应用程序。
在Form1.cs中添加引用:using System.Runtime.InteropServices;
在pulic class Form1声明的开头添加代码:
[DllImport("MotorControlDll.dll",EntryPoint="Add",ExactSpelling=false,CallingConvention=CallingConvention.Cdecl)]
public static extern int Add(int a,int b);
至于DllImport属性的用法可以察看MSDN,对于各项参数有详细的说明。
最后还要记得将DllDemo生成的位于Debug文件中DllDemo.dll文件加入到C#的WinForm程序的bin目录下。
这样就可以直接使用Add(int a,int b)函数。
建立VC工程DllDemo,建立的时候选择MFC AppWizard(dll),选择Regular Dll using shared MFC Dll或者MFC Extension Dll。
现在可以写一个函数代码,在DllDemo.cpp文件中添加这些代码。也可以使用新的文件添加代码;
extern “C“ __declspec(dllexport) int Add(int a,int b)
{
AFX_MANAGE_STATE(AfxGetStaticModuleState());
TRACE("Entering DllAdd/n");
return a+b;
}
编译工程。
下面建立一个C#的WinForm程序测试DllDemo:
启动vs.net IDE,建立新的C#工程,选择WinForm应用程序。
在Form1.cs中添加引用:using System.Runtime.InteropServices;
在pulic class Form1声明的开头添加代码:
[DllImport("MotorControlDll.dll",EntryPoint="Add",ExactSpelling=false,CallingConvention=CallingConvention.Cdecl)]
public static extern int Add(int a,int b);
至于DllImport属性的用法可以察看MSDN,对于各项参数有详细的说明。
最后还要记得将DllDemo生成的位于Debug文件中DllDemo.dll文件加入到C#的WinForm程序的bin目录下。
这样就可以直接使用Add(int a,int b)函数。
相关文章推荐
- 举例说明如何在C#中使用C/C++写的DLL
- 如何使用vs2008 C#程序联合调试C++dll
- 举例说明如何在C#中使用C/C++写的DLL
- C#中如何创建、生成以及使用DLL
- 求教C#使用(SnmpSharpNet.dll)Snmp协议,如何获取整个局域网段内的IP设备类型(例PC、路由器等)MAC和主机名?
- C++如何调用C#的DLL方法
- C++通过CLR调用C#dll--如何定义合适的参数
- c# 如何使用DLL的config文件中的信息
- 如何用VB,C#调用C++写的DLL
- C#使用CLR/C++的DLL间接调用Native C++的DLL
- 如何生成DLL文件并导出函数及如何在C++或C#中调用DLL中导出的函数
- 给用C++写的dll写一个接口函数供C#使用
- 如何在C#应用程序和DLL中使用消息
- 如何用C#调用C++开发的DLL呢?
- C# 如何调用 C++ 的 DLL
- 在C++创建DLL,以及使用C++或者C#分别调用DLL中的方法
- (原創) 如何使用Timer? (.NET) (C#) (C++/CLI)
- C++如何调用C#编写的DLL
- 在C#中使用C/C++写的DLL
- 综合项目之闪讯破解(五)之 如何用C#调用C++编写的Dll