C#调用C++ dll代码

本文详细介绍了C#调用C++生成的dll的方法。包括新建C++动态链接库项目、编写代码、生成不同版本的dll,以及在C#中进行相应配置和调用测试。还提及了C++调用C++ dll的方法,同时指出升级VS后编写dll的注意事项。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

(这里最好不要在其他项目中新建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的编译情况下调用。

 

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

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

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

2.5选择编辑添加如图。

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 调用下这个函数,结构如图。

 

 

 

 

 

 

4.C++调用C++dll,直接在解决方案中添加引用要添加的dll文件

4.1然后声明,名字要和dll中定义的一致,如SEtTimedll中定义了int XXXX(int a,int b);在调用是声明在调用如图

 

4.2有用一个坑,升级vs后在编写dll是需注意,extern "C" _declspec(dllexport) int   XXXX(int a) 改成 extern  _declspec(dllexport) int   XXXX(int a),即去掉 "C";

改成

不然编译器报错

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值