【发布时间】:2010-11-12 14:30:27
【问题描述】:
我有一个 C 应用程序,我想包含一种脚本语言来将某些功能放入脚本中。我只是没有这方面的经验,也不知道从哪里开始(仍在学习 C 并试图理解应用程序)。
我的应用程序和脚本之间的嵌入和通信实际上是如何工作的?我想我需要脚本语言的解释器作为库(Windows 上的 .dll 或可以编译到我的应用程序中的 C 源代码)?然后我可以做类似的事情
interpreter->run("myscript", some_object);
脚本如何知道对象的属性?假设我的脚本想要读取或修改 some_object->some_field?
是否有针对这种嵌入进行了优化的脚本语言?我知道有在游戏开发中流行的 Lua,以及像 Python、Perl、PHP 或 Ruby 这样的语言似乎更有针对性地作为独立应用程序,但我在深层架构方面的知识不允许更多有根据的猜测:) (标记 Lua 和 Python,因为它们是我的最爱,但只要它在 x86 Windows、Linux 和 Mac OS X 上运行,我对其他脚本语言持开放态度,只要它们易于在 C 应用程序中实现)
【问题讨论】:
-
只是好奇:你能谈谈你的动机吗?您是否为不同的(更好,更简单,...)语法嵌入了另一种语言(因为有可嵌入的解释器完全使用 C 作为他们的语言)?或者它是关于为您的应用程序提供一些可编程接口而无需重新编译?还是为最终用户定制...?
-
这是一些游戏逻辑,主要是我目前正在计划的角色扮演游戏的对话和任务。