准备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