托管.net的C ++程序将对象从C ++暴露给C#

时间:2013-02-20 18:29:07

标签: c# c++ scripting

我正在探索使用.net作为我程序的脚本语言的想法。

我在互联网上发现了很多例子,展示了如何托管.net,然后是来自.net的c ++调用函数。

但我还需要继续其他方式,从c#中的代码,我需要能够从这个c#脚本创建/调用c ++的对象,所以我需要公开函数/对象来控制它来自C#。

我该怎么做?

简单示例以显示我正在谈论的内容 我将我的c ++方法称为“CreateGUI”。它将调用.net代码:“InitializeGUI”,这个“InitializeGUI”需要检查一个对象(例如,纹理)是否在C ++中实例化。

有人可以帮助我吗?

谢谢!

2 个答案:

答案 0 :(得分:0)

如果使用托管C ++,则可以创建可从C#代码调用的托管C ++组件。如果使用非托管C ++,可以创建C ++ COM组件并通过C#通过RCW(Runtime Callable Wrapper)机制使用它,也可以创建C ++ dll并通过PInvoke从C#调用它。

答案 1 :(得分:0)

您也可以调查Mono,它是explicitly intended to be embedded并运行任何已编译的.NET程序集,这意味着C#,VB.NET甚至F#的全部功能都可用。