1.新建项目选(Visual C++ ——>windows桌面程序——>动态链接库(DLL))如图。

(这里最好不要在其他项目中新建DLL项目否则会后很多未知问题。)

C#调用C++ dll代码

2.打开第一个DIllNewTest.cpp 写上如下代码

 extern "C" _declspec(dllexport) int  XXXX(int a, int b)
{
    return a + b;
}

2.1   extern " C" 必须加上否则C#调用程序找不到入口点函数。

然后生成Dll时注意生成的是x86,x64,目前经测试,生成x86的只能用在C#x86,x64只能在C# x64的编译情况下调用。

 

C#调用C++ dll代码

2.2在C#中点击运行时和C++生成的dll保存一直,我上面生成是用x64所有这里也设置成x64如图。C#调用C++ dll代码

2.3.写一个简单的C#控制台调用测试下,如图。

C#调用C++ dll代码

2.4可能没有这个选项是下拉点击配置管理器添加,如图

C#调用C++ dll代码

2.5选择编辑添加如图。

C#调用C++ dll代码

C#调用C++ dll代码

3.1添加引用如图标记1位置(这里下面在输入2的时候会提示添加)

3.2添加dll如图标记2位置[DllImport()]加载,路径名两种形式@“C:\1\2\3”或"C:\\1\\2\\3”形式,其他形式未测如果有需要自己在去尝试下这两种形式都是绝对路径形式,相对路径的我也不知道怎么填,如果有人知道的话欢迎交流分享下方法。

3.3 在3.2下面添加标记3位置的和C++中dll的函数实现同名,前面添加extern static 固定搭配必须这样写,我也想可以不添加就好了,麻烦。如果有多个函数定义,每个函数前都要加标记2位置哪行代码。

3,4 调用下这个函数,结构如图。

 

C#调用C++ dll代码

 

 

 

相关文章: