需要一种简单的方法来使用C ++ CLI嵌入IronPython

时间:2014-01-29 09:36:58

标签: c# c++ command-line-interface ironpython

所以我发现this guideC#中做了another example,它完美无缺,非常容易设置。现在我一直试图在C++/CLI中做同样的事情,因为他只在C++/CLI进行编码,结果变得更复杂了。

首先,C++/CLI中没有动态关键字,因此从该指南中翻译代码示例似乎并不真正起作用。我发现{{3}}专门用于C++/CLI,但它实际上不再起作用,我猜这是旧版本的IronPython。所以我真的需要一些帮助,只需一个简单的方法就可以从C++/CLI内运行一个IPY脚本,然后可能是一个如何向脚本公开对象/方法的例子。

1 个答案:

答案 0 :(得分:0)

它应该是可能的(我从来没有使用C ++ / CLI完成它),但你必须这样做the old fashioned, pre-.NET 4 way(在C#中):

ScriptEngine engine = Python.CreateEngine();
ScriptScope scope = engine.CreateScope();
engine.Execute(fooScript, scope);
object foo = scope.GetVariable("foo");
object result = engine.Operations.Invoke(foo, 1, "a");

在那里撒上^以适当地将C#转换为C ++ / CLI。

(在这种情况下,fooScript将包含类似的内容:

def foo(a, b):
    return str(a) + ", " + str(b)