如何用C++编写可被C#调用的Dll
之前的三篇文章已经将闪讯的算法以及PPPOE拨号的关键函数全部用C++实现了,但C++写界面比较繁琐,本身我擅长C#所以决定用C#写界面,C++写DLL给C#调用。这种方式写出的软件,DLL算法保密性好,C#界面开发速度快,C++写算法非常方便,要知道C#写算法是很伤的,而且这也是当前许多公司的选用的编程方式,即C#与C++强强联合。
1)用VS新建一个WIN32项目
打开VS新建项目,项目类型为“Visual C++–Win32项目”,项目名称为”MyDll”,单击”确定”。
单击”下一步“。
应用程序类型选择“Dll”,附加选项选择”空项目”,单击“完成”。
2)向Dll项目中添加项目文件
右击“源文件”,选择“添加–新建项”。
选择“代码–C++文件(.cpp)”,名称和项目名相同为“MyDll”。
右击“源文件”,选择“添加–新建项”,选择“代码–模块定义文件(.def)”,名称和项目名相同为“MyDll”。
右击“资源文件”,选择“添加–新建项”,选择“资源–资源文件(.rc)”,名称和项目名相同为“MyDll”。
双击“MyDll.rc”,在资源视图里面右击“MyDll.rc”,选择添加资源。
选择“Version”,单击“新建”。
**至此,一个WIN32的C++的Dll项目所需项目文件全部备齐,下面是每个文件的作用。
MyDll.c 包含MyDll.dll可供外部调用的函数及内部函数的C++代码。
MyDll.def向外声明MyDll.dll可供外部调用的函数。
MyDll.rc为版权声明文件。
**3)编辑各个项目文件
MyDll.c 代码:
函数返回值类型__stdcall函数名(传入参数)
{
代码;
}
int __stdcall Sum(int a, int b)//一个测试函数 加法函数{return a + b;}
MyDll.def代码:
LIBRARY “项目名”
EXPORTS
函数名 @ N(N=从1开始向后排)
LIBRARY "MyDll"EXPORTSSum @ 1
MyDll.rc:
大家可以随便写版本及版权信息
4)编译生成 Dll
先更改编译生成模式为Release(发布版),平台X86。
右键点击项目MyDll,单击“重新生成”。
成功后下面提示信息显示 “全部重新生成已成功”
5)查看Dll信息
成功的创建了一个C++的DLL,由于篇幅的限制,下一篇文章继续讲C#如何调用C++的Dll。