我在c#中使用Assembly.Load
选项来加载c#程序集并且它已成功运行。但是使用相同的方法加载c ++程序集,我无法得到。有没有办法加载这些c ++程序集?请分享想法。提前致谢。
答案 0 :(得分:1)
程序集是专门用于包含.NET / CLR代码的DLL的术语。此代码通常是垃圾收集的,需要并与CLR交互。
如果您需要加载任何其他类型的DLL,该DLL中的代码类型将决定您如何处理它。
如果DLL可以被包装为/转换为COM对象,那么包装它就非常简单,如this tutorial所示。您只需导入类型库并使用生成的托管包装器。
如果这不可行或不可取,请使用P {Invoke,如this tutorial所示。您将创建import语句以指定在DLL中实现函数。这不适用于C ++类。
第三个选项是实际修改C ++以包含托管代码,这需要使用C ++ / CLI。对于大多数项目来说,这是一个相当大的工作量,所以我会选择前两个选项中的一个。