C++ 任何有将CINT嵌入C+经验的人+;应用程序?

C++ 任何有将CINT嵌入C+经验的人+;应用程序?,c++,scripting,root-framework,C++,Scripting,Root Framework,我是说 我一直在开发一个C++游戏,它使用Python来编程AI。虽然我非常喜欢Python,而且它使编程AI变得多么容易(生成器和FP非常性感),但它使非平凡的算法运行得如此缓慢 然后我记得我在什么地方读过关于CINT的书,以及它是如何嵌入的。现在我需要您的帮助来决定是否将CINT作为一个备用脚本系统来实现。对于python,我使用Boost::python,这使得一旦习惯了类和对象,就几乎不需要公开它们。CINT有这么简单吗?我编写了基于Root的类编译,然后在解释器中直接访问它们。这很容易

我是说

我一直在开发一个C++游戏,它使用Python来编程AI。虽然我非常喜欢Python,而且它使编程AI变得多么容易(生成器和FP非常性感),但它使非平凡的算法运行得如此缓慢


然后我记得我在什么地方读过关于CINT的书,以及它是如何嵌入的。现在我需要您的帮助来决定是否将CINT作为一个备用脚本系统来实现。对于python,我使用Boost::python,这使得一旦习惯了类和对象,就几乎不需要公开它们。CINT有这么简单吗?

我编写了基于Root的类编译,然后在解释器中直接访问它们。这很容易,尽管所有这些类都应该派生自
TObject
。我不知道这是cint需求还是根需求。你最好在网上问问


要解决评论中的问题:

  • TObject
    派生可以是间接的:您的类可以从从
    TObject
    派生的东西派生,它必须是一个TObject
  • Root提供了一个工具(
    makecint
    )和一些宏(
    ClassDef
    classmp
    )来支持将代码与解释执行环境集成:编写从
    TObject
    派生的CLA;在头文件中包含
    ClassDef
    宏,在源文件中包含
    classmp
    宏;在代码上运行
    makecint
    ,生成所有繁琐的集成代码,然后将代码和生成的代码编译为共享对象(或者,我猜想,是windows框上的dll);启动翻译程序;用
    .L
    加载库;您的类与解释环境完全集成(制表符完成将起作用)。可以使用
    make
    (以及其他可能的工具)自动生成##再说一遍,我不知道这其中有多少属于ROOT,有多少属于cint。但它都是开源的,所以你可以根据需要进行修改

我认为可以创建一个包装器类,该类派生自与公开对象和TObject相同的类。这样可以避免修改现有的类。顺便说一句,你能再详细一点吗?将其包含到构建系统中有多困难?很容易集成、链接吗?我很感兴趣:)