vs2019实现c#调用c++的dll的方法有哪些?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。
1。托管与非托管的区别
链接地址(仅供参考)
除了链接中的,在实用角度出发:
非托管需要一个个声明引用,就很繁琐
但是托管(虽然麻烦)不用声明,只需要调好配置即可,还是比较方便的
为什么写这个博客,也是因为不同版本vs2017和vs2019有所区别,托管就容易踩坑,希望大家能看看,解决问题(我也很菜,大佬轻喷)
2。非托管类的实现
第一步:创建c++空项目(命名各行各业)添加一个类AddOperate
。h代码部分:
# pragma> # include“AddOperate.h" # include“iostream" 使用名称空间性病; int和(int, int b) { 如果(a - (int) !=0 | | b - b (int) !=0) { cout & lt; & lt;“请输入整数“& lt; & lt;endl; 返回1; } 返回一个+ b; }
第二步:将c++代码编译成动态库dll
<标记> >标记首先:项目,属性,配置类型——常规——配置类型——动态库文件(. dll)中(注意x64)
第三步:将dll拷贝到c#项目输入目录,一般在bin/调试下面
第四步:c#调用dll
c#代码如下:<标记> >标记注意:c#也用x64
# include“AddOperate.h" # include“iostream" 使用名称空间性病; int和(int, int b) { 如果(a - (int) !=0 | | b - b (int) !=0) { cout & lt; & lt;“请输入整数“& lt; & lt;endl; 返回1; } 返回一个+ b; }
3。托管类的实现
<标记> >标记注明:windows窗体控制程序也可以这样
第一步:打开vs2019,新建新项目在c#里找到控制台应用(。净核心)
新建的项目命名为各行各业
这个时候添加一个类CaculateData
# include“AddOperate.h" # include“iostream" 使用名称空间性病; int和(int, int b) { 如果(a - (int) !=0 | | b - b (int) !=0) { cout & lt; & lt;“请输入整数“& lt; & lt;endl; 返回1; } 返回一个+ b; }
CaculateData。cpp代码如下
# include“AddOperate.h" # include“iostream" 使用名称空间性病; int和(int, int b) { 如果(a - (int) !=0 | | b - b (int) !=0) { cout & lt; & lt;“请输入整数“& lt; & lt;endl; 返回1; } 返回一个+ b; }
之后你需要配置你的项目
<标记> >标记1。添加宏CaculateDLL_EXPORTS
方法:在贵司的属性页→配置属性→C/C +±祝辞预处理器→预处理器定义
<标记> >标记(注意,我们需要平台为Win32)