c#调用c++dll方案总结

来源:互联网 发布:咸鱼网是淘宝的吗 编辑:程序博客网 时间:2024/06/04 19:18

由于c#被太容易被反编译,c++反编译比较困难,有时核心部分需要用c++,而本身c#出身又想用c++写一个简易的封装只需要用vs2010即可搞定。此处为了方便我使用已经写好的例子,一些无法透露的地方使用了马赛克。可能影响观看如有疑问请留言。

首先新添加一个c++项目:


此处注意,新建的时候记得选择为dll



打开.cpp结尾的文件进行代码编辑



并且一定要新建同名.def文件中对方法进行声明(此处涉及到公司项目所以用马赛克挡住,.cpp中有几个方法就要在这里写几个,并且在后面用@第几个 来标注


对着这个项目鼠标右键选择好生成dll的位置


然后在c#的项目(我的项目是web应用程序)中的引用dll文件夹下添加生成的dll,并包含在项目中并对着他的属性进行如下设置



设置好以后我们需要在当前引用dll的项目中添加一个类,这里我命名与c同名


关于dllImport的后面参数详细请直接百度。

using System.Runtime.InteropServices;namespace WebApplication1{    public class cjiajia    {        [DllImport("cjiajia.dll", EntryPoint = "diaoyong", ExactSpelling = false)]        public static extern void diaoyong(ref int i);    }}


这时当我们对项目生成后,会在bin下面产生一个ImportDLL文件夹,在这个文件夹下把生成的cjiajia.dll放到bin根目录下。


一个c#可以调用的c++的dll就完成了,只需要这么调用就好。

 int i = 1;            cjiajia.diaoyong(ref i);


之后我们就可以在程序中调用他了

0 0
原创粉丝点击