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

有帮助吗?

解决方案

要调用到从非托管C托管代码++,使用 ClrCreateManagedInstance ,或导出您的管理组件,COM可见的类型,并使用COM。调用非托管代码从管理,使用COM或P /调用。

其他提示

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

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top