C++调用C# dll 未能加载文件或程序集

1. 调用前准备:

(1)C# 类库项目正常编译;
(2)C++项目设置“公共语言运行时支持(/clr)”;
在这里插入图片描述

(3)C++项目添加C# dll路径及申明dll 所在命名空间

#using "..\\CSDll\\bin\\Debug\\CSDll.dll"
using namespace CSDll;

(4)C++项目创建托管对象,并访问其属性

int main()
{
	Person ^p = gcnew Person("aaa", 28);

	std::cout << p->Age << std::endl;

(5)编译成功。
但是启动程序时报错:找不到dll
在这里插入图片描述

2. 原因分析:

(1)dll目录错误?不可能,否则编译不会通过;
(2)dll还有其他依赖的dll?就一个简单的测试dll,没有添加其他依赖dll;

3. 解决方案:

方法(1)将C# dll 拷贝到C++项目的可执行目录下,并更新#using 目录(不推荐,因为C# dll每次重新编译后都需要手动复制,不利于项目管理);

方法(2)将C# dll项目的生成目录更改至和C++生成目录二者同目录;

方法(3)C++项目设置延迟加载dll,
参见https://blog.csdn.net/jiangli198867/article/details/103806761
和https://blog.csdn.net/d4567star/article/details/82993777
同样的,没有成功,待后续慢慢研究吧

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值