我现在正在学习C++,我听过很多关于嵌入式脚本语言的知识.我想象它完全不同.
我以为我会用C++编写所有性能繁重的函数,并用Lua或Python等脚本语言调用它们.
但它似乎是另一种方式. - >在Lua/Python中编写函数并用C代码调用它们.
在C++中嵌入语言而不是用C++编写API并用另一种语言调用这些函数有什么好处?
例:
// function in c++
int expensiveFunction(){
return 1;
}
Run Code Online (Sandbox Code Playgroud)
然后在Python中我将调用此函数,我将从C++获得性能,但由于Python的运行时解释器,可以在运行时进行更改.
实际上,很多游戏引擎都喜欢通过嵌入Lua或Python来构建引擎接口.这有以下优点:
对于需要脚本语言灵活性但希望获得C++性能的项目,C++非常有用.我没有听说过使用C++作为前端的项目,使用脚本语言作为后端.
API风格
我们在公司的软件中使用这种风格.我们通过Windows DLL公开API,可以很容易地被大多数语言调用.我们特别支持VB和VBA.当后端来自脚本制作者的控制之外时,这很好.但是,很难调整脚本制作者的观点所引起的问题.
好处
缺点
嵌入式
该软件实际上将脚本解释器嵌入到软件中.这样,您可以将功能公开,就像它们是本机功能一样.在这种风格中,脚本制作者和后端程序员通常都在同一家公司.传统软件也可以使用它来允许其他人扩展应用程序的功能.如果他们共享源代码,您可以更容易地调试脚本引起的问题.该应用程序还负责何时以及如何启动脚本.但是,为了支持其他语言,应用程序开发人员必须嵌入其他解释器.
好处
缺点