所以我发现this guide在C#
中做了another example,它完美无缺,非常容易设置。现在我一直试图在C++/CLI
中做同样的事情,因为他只在C++/CLI
进行编码,结果变得更复杂了。
首先,C++/CLI
中没有动态关键字,因此从该指南中翻译代码示例似乎并不真正起作用。我发现{{3}}专门用于C++/CLI
,但它实际上不再起作用,我猜这是旧版本的IronPython。所以我真的需要一些帮助,只需一个简单的方法就可以从C++/CLI
内运行一个IPY脚本,然后可能是一个如何向脚本公开对象/方法的例子。
答案 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)
)