如何从本机C ++(非托管代码)调用.NET代码?我想将.NET代码公开给我的非托管(C ++)应用程序,然后使用它们。更具体地说,我想从本机C ++调用C#:)。我知道有很多方法可以告诉我每种方法的优缺点吗?顺便说一句,我不想使用COM,那么现在有哪些选择呢?
我是否有可能将C#代码包装在C ++ / CLI中,然后从C ++中调用它?如果是这样,我该怎么做?如何在C ++ / CLI中包装C#然后从C ++调用它?
答案 0 :(得分:5)
我刚刚写过这篇文章。这是关于Delphi的,但这并不意味着它也不适用于C ++。
即使不太了解C ++,我仍然知道IUnknown和COM兼容的接口引用应该可以在C ++中使用(如果你需要传递对象,而不仅仅是结构)。
此C#代码将导出一个函数“YourExportName”,可以像使用任何c兼容函数一样使用。
class Sample
{
[DllExport("YourExportName")]
static int TestFunction(int left, int right)
{
return left + right;
}
}
答案 1 :(得分:1)
你总是可以嵌入Mono。到目前为止,我亲自在两个项目中完成了它,这很容易。关注Embedding Mono以获取更多信息。
答案 2 :(得分:0)
您可以将托管组件expose作为COM对象。
答案 3 :(得分:0)