在C ++中嵌入脚本

时间:2018-04-21 09:27:35

标签: c++ scripting embedding

我有一个退出的大c ++程序,我希望有一个函数可以在文本文件中编辑,以改变我的c ++程序的行为,而无需再次编译它。

为了达到这个目的,我想我可以在我的c ++程序中嵌入一个脚本。

我的函数应该使用两个c ++对象并返回一个与两个对象及其成员相关的布尔值。 伪代码类似于以下内容:

//In c++ program
CppObject cpp1, cpp2;
ScSriptObject o1 = transform(cpp1);
ScriptObject o2 = transform(cpp2);
boolean result = call function(o1, o2);

//Script function in text file
boolean function(Object o1, Object o2)
{
return do_something(o1, o2)
}

我想知道是否还有其他更好的解决方案。使用哪种脚本语言可以轻松完成,如何完成?

我已经看过python和Python / C API,但是我有一些麻烦让基本的例子工作,我想知道是否有更简单的选项。

感谢您的帮助:)

1 个答案:

答案 0 :(得分:-1)

如果您正在使用Linux,则可以使用system函数调用外部脚本,您可以在决定时编辑该脚本,而无需再次编译。例如:

int res = system("/usr/local/bin/myscript.sh");
if (res == 0)
{
    // exited normally
}
else
{
    // abnormal exit
}

在Windows上,您可以使用类似的方法,就像独立于平台的系统一样。还有一件事,请记住结果的结尾! 有关系统的进一步阅读,您可以在cplusplus.com上使用this answer或几乎完全解释link。 希望它有所帮助,欢呼。