从C+调用C#方法+;不使用COM 有没有方法创建C++对象,并从非托管C++调用方法,但不使用COM?我正在寻找一些类似JNI(但是.NET)的东西,在那里你可以手动创建VM,创建对象等等。 < P>你可以在C++项目中逐个决定是否使用托管C++。尝试更改项目中文件的设置,使其按托管方式编译。把呼叫放到你的C#object上

从C+调用C#方法+;不使用COM 有没有方法创建C++对象,并从非托管C++调用方法,但不使用COM?我正在寻找一些类似JNI(但是.NET)的东西,在那里你可以手动创建VM,创建对象等等。 < P>你可以在C++项目中逐个决定是否使用托管C++。尝试更改项目中文件的设置,使其按托管方式编译。把呼叫放到你的C#object上,c#,.net,c++,com,interop,C#,.net,C++,Com,Interop,跨越C++/C#边界是有代价的,所以你应该分析在哪里做。例如,您不希望在循环中执行此操作。如果使用C++/CLI,则可以直接与托管世界和非托管代码交互,因此互操作非常简单 您也可以自己托管CLR,虽然托管API是基于COM的,但您可以创建任何托管对象。这个过程听起来并不困难,因为几个API调用封装了很多功能。网上有很多信息,例如关于“”的MSDN文档 有一种从.NET类/方法导出C风格API的方式有些“未记录” 这最终会导致.NET dll导出API的情况,这些API可以从C/C++或任何可以使

跨越C++/C#边界是有代价的,所以你应该分析在哪里做。例如,您不希望在循环中执行此操作。

如果使用C++/CLI,则可以直接与托管世界和非托管代码交互,因此互操作非常简单

您也可以自己托管CLR,虽然托管API是基于COM的,但您可以创建任何托管对象。这个过程听起来并不困难,因为几个API调用封装了很多功能。网上有很多信息,例如关于“”的MSDN文档

有一种从.NET类/方法导出C风格API的方式有些“未记录”

这最终会导致.NET dll导出API的情况,这些API可以从C/C++或任何可以使用.dll的东西调用

如果你喜欢“阅读”(beh;),你可以读一本书,书名是:在第15章“托管方法作为非托管导出”中可以找到这种技术

还有一个很好的代码项目示例,您可以将其用作32位环境的起点:

我是JVM和CLR之间的开源进程内桥梁的作者。它建立在JNI和PInvoke之上。不需要C/C++代码。我希望它能帮助你