有没有人从事过从C模块调用C#模块的工作。我尝试在互联网上搜索,但没有找到好的示例。虽然许多站点都说使用COM interop之类的东西,但是却找不到合适的示例或说明它的文章。
如果有人可以帮助我,那就太好了
谢谢,Sveerap
如果要从C或C ++调用托管代码,则不只是COM互操作。还有以下鲜为人知的方法(摘自 MSDN FAQ ):
如何从本地Visual C ++调用.NET程序集? 基本上有四种方法可以从本地VC ++代码调用.NET程序集: CLR托管API :本机VC ++模块调用CLR托管API来托管CLR,加载并调用.NET程序集(示例代码:CppHostCLR)。 COM互操作 :如果.NET程序集可以作为COM组件公开,则本机VC ++模块可以通过.NET – COM互操作(示例代码:CppCOMClient)调用.NET程序集。 反向PInvoke :托管代码调用传递给本地代码可以回调的委托的本地代码(示例代码:CSPInvokeDll)。 **C / CLI** :如果允许包含本机VC 代码的模块启用CLR,则本机VC ++代码可以直接调用.NET程序集(示例代码:使用C / CLI在本机C或C 中使用C#库)
如何从本地Visual C ++调用.NET程序集?
基本上有四种方法可以从本地VC ++代码调用.NET程序集:
CLR托管API :本机VC ++模块调用CLR托管API来托管CLR,加载并调用.NET程序集(示例代码:CppHostCLR)。
COM互操作 :如果.NET程序集可以作为COM组件公开,则本机VC ++模块可以通过.NET – COM互操作(示例代码:CppCOMClient)调用.NET程序集。
反向PInvoke :托管代码调用传递给本地代码可以回调的委托的本地代码(示例代码:CSPInvokeDll)。
**C / CLI** :如果允许包含本机VC 代码的模块启用CLR,则本机VC ++代码可以直接调用.NET程序集(示例代码:使用C / CLI在本机C或C 中使用C#库)