C#调用C++dll方法步骤
程序员文章站
2023-12-05 08:36:52
c#调用c++dll的方法和步骤
其他分享涉及到的概念和方法对于像我这样比较菜的选手看起来比较费劲并且很难抓住重点,这里我总结了一段时间的研究成果供初学者救济之用,简单明...
c#调用c++dll的方法和步骤
其他分享涉及到的概念和方法对于像我这样比较菜的选手看起来比较费劲并且很难抓住重点,这里我总结了一段时间的研究成果供初学者救济之用,简单明了。
1、新建项目->visual c++->win32项目 mydll
注意:c++编写的dll一般是不能直接拿来c#调用,需要先新建个c++的工程把dll里的方法重新封装成可被c#外部调用的函数。
2、mydll.cpp里的代码如下:
extern "c" _declspec(dllexport)int add(int a ,int b) { int sum=a+b; return sum; }
注意:函数前一定要加extern "c" _declspec(dllexport),可被外部引用
3、项目->属性->常规->公共语言运行库支持->公共语言运行库支持(/clr)
4、f5编译程序,在debug文件夹中找到生成mydll.dll目标文件备用
1、方法/步骤2
新建项目->visual c#->控制台应用程序 dllconsoleapplication1
2、将步骤1生成的mydll.dll文件copy到dllconsoleapplication1工程的根目录下
3、
program.cs代码如下using system;using system.collections.generic;using system.linq;using system.text;using system.runtime.interopservices; //必须添加,不然dllimport报错namespace dllconsoleapplication1{ class cppdll { [dllimport("mydll.dll", charset = charset.ansi)] //引入dll,并设置字符集 public static extern inprogram.cs代码如下using system;using system.collections.generic;using system.linq;using system.text;using system.runtime.interopservices; //必须添加,不然dllimport报错namespace dllconsoleapplication1{ class cppdll { [dllimport("mydll.dll", charset = charset.ansi)] //引入dll,并设置字符集 public static extern int add(int a ,int b); } class program { static void main(string[] args) { t add(int a ,int b); } class program { static void main(string[] args) { int sum=cppdll.add(3, 4); } }} int sum=cppdll.add(3, 4); } }}
4、
编译程序,在程序中加断点,查看函数的计算结果
5、到这里,c++dll里的方法已经在c#里调用成功了。到这里,c++dll里的方法已经在c#里调用成功了。