栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

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

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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
同样的,没有成功,待后续慢慢研究吧

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/588464.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号