3

我有一个使用 VC 6.0 开发的纯 C++ 应用程序。我希望这个应用程序能够使用用 C# 开发的库。如何从我的本机可执行文件调用 C# 库中的方法?我不想将我的非托管 C++ 本机应用程序转换为托管代码。同样,我该如何做相反的事情?PInvoke 是唯一的选择吗?我将不胜感激任何相同的参考或指针。

4

2 回答 2

3

要从非托管 C++ 调用托管代码,请使用ClrCreateManagedInstance,或将托管程序集中的类型导出为 COM 可见,然后使用 COM。要从托管调用非托管代码,请使用 COM 或 P/Invoke。

于 2009-06-25T22:17:13.573 回答
1

微软在这方面的主线是使用 COM 互操作。然而,还有另一种选择,有时称为“反向 P/Invoke”,这里有一篇有趣的博文,这里还有更多

此外,如果您有 Delphi.NET(现在已不存在),这种语言允许您像导出任何 dll 函数一样导出静态方法,那么您可以像普通的原生 Dll 一样调用 Delphi.NET 程序集。

于 2009-06-25T22:43:10.760 回答