(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
(1)dll目录错误?不可能,否则编译不会通过;
(2)dll还有其他依赖的dll?就一个简单的测试dll,没有添加其他依赖dll;
方法(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
同样的,没有成功,待后续慢慢研究吧
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)