如何在非托管代码中动态加载托管(.Net)DLL?
我正在用C ++创建一个插入到应用程序中的插件系统,我希望能够编写C#插件。
我搜索了一下但只能找到COM加载(使用#import),但我不知道如何在运行时这样做,如果可能的话。
C#DLL(插件)可以调用C ++ DLL(插件管理器)中的函数。
我更喜欢不需要用/ clr编译C ++ DLL的解决方案。
答案 0 :(得分:1)
这里有很多问题。
我更喜欢不需要用/ clr编译C ++ DLL的解决方案。
在某种程度上,要使用C#DLL,您需要引导CLR。使用/ clr有一个巨大的优势 - 您可以为C#插件提供真正的托管API。
您的主要其他选项是使用COM,并提供基于COM的API。这将在C#以及其他语言中正常工作,并负责为您加载CLR。唯一的其他API是self-host the CLR using the hosting APIs。这为您提供了最大程度的控制,但绝对是一项额外的工作。