代码之家  ›  专栏  ›  技术社区  ›  Jan Bannister

在我的C应用程序中嵌入Ironpython的最佳方法是什么?

  •  2
  • Jan Bannister  · 技术社区  · 17 年前

    我有一个应用程序被相当技术保守的人使用,他们想要一个可编程性的小岛,所以我使用了嵌入式Iron Python。

    但是,由于Ironpython 2.0 eval()不再工作。具体来说,我不能同时加载模块和注入局部变量。

    有一个解决方案,我仍然可以调用execute(),打印出我的答案,然后听standardout,但它作为一个字符串出现,我丢失了类型。

    不是一场长期的灾难,而是更复杂物体的巨大痛苦。

    有人知道如何让eval()在2.0中像在1.x中那样重新工作吗?

    干杯, 简

    2 回复  |  直到 17 年前
        1
  •  2
  •   Curt Hagenlocher    17 年前

    你能不能对这个问题更具体一点,并提供一个代码示例?“eval”风格的功能仍然存在,不过正如您所注意到的,托管接口自1.0以来已经发生了很大的变化。

    这在测试版5中有效:

    ScriptEngine engine = Python.CreateEngine();
    ScriptSource source = engine.CreateScriptSourceFromString("2 + 5", SourceCodeKind.Expression);
    int result = source.Execute<int>();
    

    顺便说一下,用右手 SourceCodeKind 这里很关键。

        2
  •  1
  •   Antonio Cangiano    17 年前
    推荐文章