从 C++ 到 Lua 传递 Lua 脚本
从 C++ 到 Lua 传递 Lua 脚本的想法包括一个事实,即由于 Lua 是 ANSI C,我们需要加载库和头文件,并且如果我们在 C++ 中进行编码,我们需要用 extern "C" 来封装 #includes。
常用且历史较久的方法是加载 Lua 提供的库,然后从 Lua 直接调用 C++ 函数。
要从 C++ 加载脚本到 Lua,我们需要设置并关闭 Lua 解释器,我们可以借助以下代码来完成此操作。
示例
考虑如下所示的代码:
extern "C" {
#include "lua.h"
#include "lualib.h"
#include "lauxlib.h"
}
int main(int argc, char *argv[]){
lua_State* L;
initialize Lua interpreter L = luaL_newstate();
load Lua base libraries (print / math / etc) luaL_openlibs(L);
////////////////////////////////////////////
We can use Lua here !
/////////////////////////////////////////////
lua_close(L);
printf( "Press enter to exit..." );
getchar();
return 0;
}之后,我们只需使用 LuaL_dostring(L, …) 函数,将字符串直接发送到 Lua 解释器中,它将被执行,就好像该字符串在用 dofile 执行的文件中一样。
示例
考虑如下所示的代码:
luaL_dostring(L, "for x = 1, 5 do print(x) end");
输出
1 2 3 4 5
广告
数据结构
网络
RDBMS
操作系统
Java
iOS
HTML
CSS
Android
Python
C 编程
C++
C#
MongoDB
MySQL
Javascript
PHP