【问题标题】:Achieving communication between main c++ program and embedded ECL实现主c++程序和嵌入式ECL之间的通信
【发布时间】:2024-01-17 11:30:02
【问题描述】:

我正在尝试扩展我正在使用第二种语言(目前是 ECL)开发的 c++ 3d 模拟,以在运行时动态影响它。也就是说,我希望能够评估这样的脚本: (移动对象 x y) 这会将“对象”移动到位置 (x,y)。

问题在于,为了使其工作,ECL 环境需要调用一些 c++ 成员函数,例如对象的相应节点的一个实例来移动它。 现在我知道如何嵌入例如 ECL 并评估任意代码以及如何从某个库调用纯 c 函数,但我不知道如何告诉 ECL 环境有关特定实例以及如何调用它们的方法。

我认为这是一件很常见的事情(如果不是使用 ECL),但是当主程序是用 c++ 编写并使用一些 OO 时,我无法找到任何信息来执行此操作。

【问题讨论】:

  • 通常,使本机函数可用于嵌入式语言的方式是向嵌入式语言运行时注册函数指针。您可以尝试使用指向成员函数的指针(不要忘记秘密 this 参数),也可以编写一个免费的包装函数。

标签: c++ lisp embedding


【解决方案1】:

您可以为 C++ 应用程序创建一个命令行界面,然后通过管道进行通信。 这就是我所做的。它很简单,对我来说已经足够快了。

【讨论】:

    最近更新 更多