准备lua
新建一个config.lua文件,内容如下
--my config MyConfigValue = 1234
准备C++
新建一个main.cpp文件,内容如下
#include<stdio.h> extern "C" { #include "lua.h" #include "lauxlib.h" #include "lualib.h" } void ReadVariable(lua_State *L,int *myConfigValue) { lua_getglobal(L,"MyConfigValue"); if (!lua_isnumber(L,-1)) { luaL_error(L,"`MyConfigValue' should be a number\n"); } *myConfigValue = (int)lua_tonumber(L,-1); printf("MyConfigValue is %d\n",*myConfigValue); } int main(int argc, char* argv[]) { if (argc != 2) { printf("param error!\n"); return 0; } char *filename = argv[1]; lua_State *L = luaL_newstate(); luaL_openlibs(L); //新版本库添加的方法 if (luaL_loadfile(L,filename) || lua_pcall(L,0,0,0)) { luaL_error(L,"loadfile error! %s \n",lua_tostring(L,-1)); } int myConfigValue=1; ReadVariable(L,&myConfigValue); return 0; }
编译执行吧
$g++ main.cpp -llua -ldl $./a.out config.lua