需要一种简单的方法来用C CLI嵌入Ironpython

Need an easy way to embedd IronPython with C++ CLI

本文关键字:方法 CLI Ironpython 嵌入 简单 一种      更新时间:2023-10-16

所以我找到了本指南在C#中进行的指南,并且可以完美地工作,非常容易设置。现在,我一直在尝试在C++/CLI中做同样的事情,因为他仅在C++/CLI中代码,而且结果变得更加复杂。

首先,C++/CLI中没有动态关键字,因此从该指南中翻译代码示例似乎并没有真正起作用。我找到了另一个专门针对C++/CLI的示例,但实际上不再起作用,我猜这是用于Ironpython的旧版本。因此,我确实需要一些帮助,只需一种简单的方法即可从C++/CLI中运行IPY脚本,然后也许是一个示例,说明了如何将对象/方法暴露于脚本。

应该有可能(我从来没有使用C /CLI做到这一点),但是您只需要这样做,您就必须这样做。):

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)