c++ - 在 C++ Windows 应用程序中嵌入和扩展的简单解释器

标签 c++ python scripting lua

<分区>

我需要一个简单的解释器来执行(计算)简单的表达式/语句,并从主要的 C++ 应用程序中调用函数。目前我不需要编写应用程序脚本,但以后可能会有用。

对于其他团队成员来说,从源存储库中提取我的应用程序并构建它也应该是直截了当的,而无需安装额外的应用程序、库等。 搜索令人 Revel 的选项,例如:Python(通过 Boost 和/或 Python API)、Lua、Guile、TinyScheme。

我最接近 Python,但使用 Boost、构建 Python 库、将主应用程序与 Python 接口(interface)的复杂任务使这个选择有点矫枉过正,也许我错了。

这个请求应该有一个简单的解决方案,您有什么经验和建议?

最佳答案

您已经列出的两个不错的选择是 Python 和 Lua。以下是供您考虑的一些权衡:

python

  • 一种更完整、更强大的语言(恕我直言!),包含适用于任何事物的库以及随处可见的大量支持和社区。
  • 语法不完全像 C 语言
  • 虽然 Python 并不是专门为嵌入而设计的(它更经常被用作一种独立的语言,通过 C/C++ 中的代码扩展),但它确实很难嵌入。官方文档包含一些示例,遵循 Boost 的示例应该不会更难。

Lua

  • 自下而上的嵌入设计,所以它应该是最简单的嵌入。
  • 语法比 Python 更像 C

如果您预见到 future 对脚本的明确需求,那么尽早构建脚本引擎是个好主意,因为它可能会在您继续开发程序时为您打开一些有趣的可能性。上面列出的两个选项都不错,您可以毫不费力地嵌入它们中的任何一个。

关于c++ - 在 C++ Windows 应用程序中嵌入和扩展的简单解释器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3896313/

相关文章:

c++ - 在 CHtmlEditCtrl::SetDocumentHTML 中使用 Unicode

c++ - 执行 CUDA 程序时出现段错误

c++ - 不一致的完全限定枚举编译时行为

python - 安装python包时报错: Microsoft Visual C++ 14. 0

bash - 使用与号 (&) 在后台运行子进程时,运行 bash 脚本不会返回到终端

c++ - 类函数原型(prototype)与定义不匹配——如何修复

python - 在 Python 中接收 WM_COPYDATA

javascript - 如何将 python OpenCV 输出流式传输到 HTML Canvas ?

shell - Bourne Shell For i in (seq)

linux - awk 计算字段数并相应地添加