如何导出在C#类库中定义的函数,同时将它们导入非托管C ++应用程序/ DLL并从中调用?
答案 0 :(得分:8)
严格来说,你不能像在经典.dll中那样导出函数,因为.NET .dll根本不是.dll。你唯一的三个选择是:
答案 1 :(得分:2)
您的C ++应用程序必须从托管CLR开始。 .NET DLL没有任何特殊要求。
答案 2 :(得分:1)
你不会。不支持。您几乎只能从库C#类中导出COM对象。
答案 3 :(得分:1)
您还可以为C#库创建一个C ++包装器 - 一个简单的托管C ++ DLL,它可以导入.NET方法并以原生方式导出它们。这会添加一个额外的图层,但如果C#库是必须的,那么它可能很有用。
另一种选择是调整已编译的程序集以导出函数。 C#编译器无法做到这一点,但需要稍微更改MSIL代码才能完成任务。 看看this article - 有关于这些东西是如何工作的一些链接,以及一个自动化它的工具(虽然我自己没有尝试过)。