Native C++代码和托管.NET代码互操作并不是什么难事, 资料也很多, 但是有些方法复杂繁琐, 本文介绍了一种简单的可行、支持动态加载的基于CLR的交互方法.
部分其它方法可参见 在 Visual C++/Native 代码中调用.NET 程序集
微软类似例子 C++/CLI wrapper for .NET assembly (CppCLINETAssemblyWrapper), 该例子与本文类似, 只是通过编译期引用方式, 不支持动态加载.
1.首先是动态加载目标程序集和类:
try { auto assembly = Assembly::LoadFrom(L"RLib.dll"); // 加载 RLib.dll, 可指定路径 auto type = assembly->GetType(L"RLib.Core", false, true); // 加载 RLib::Core 类型,