【发布时间】:2024-01-17 11:30:02
【问题描述】:
我正在尝试扩展我正在使用第二种语言(目前是 ECL)开发的 c++ 3d 模拟,以在运行时动态影响它。也就是说,我希望能够评估这样的脚本: (移动对象 x y) 这会将“对象”移动到位置 (x,y)。
问题在于,为了使其工作,ECL 环境需要调用一些 c++ 成员函数,例如对象的相应节点的一个实例来移动它。 现在我知道如何嵌入例如 ECL 并评估任意代码以及如何从某个库调用纯 c 函数,但我不知道如何告诉 ECL 环境有关特定实例以及如何调用它们的方法。
我认为这是一件很常见的事情(如果不是使用 ECL),但是当主程序是用 c++ 编写并使用一些 OO 时,我无法找到任何信息来执行此操作。
【问题讨论】:
-
通常,使本机函数可用于嵌入式语言的方式是向嵌入式语言运行时注册函数指针。您可以尝试使用指向成员函数的指针(不要忘记秘密
this参数),也可以编写一个免费的包装函数。