这个类就是调用了一下lua文件中的全局变量信息,基本没什么技术含量...... //LuaEx.h文件 #pragma once #include <Windows.h> extern "C" { #include "lua/lua.h" #include "lua/lualib.h" #include "lua/lauxlib.h" }; class LuaEx { public: LuaEx(void); ~LuaEx(void); bool LoadFile(LPCSTR str); //载入lua文件 LPSTR LoadString(LPCSTR str); //读取字符串 int LoadInteger(LPCSTR str); //读取整形 double LoadDouble(LPCSTR str); //读取浮点型 bool LoadBoolean(LPCSTR str); //读取布尔型 private: lua_State *L; //lua指针 }; //LuaEx.cpp文件 #include ".\luaex.h" #pragma comment(lib, ".\\lua\\lua.lib") LuaEx::LuaEx(void) { L = lua_open(); luaL_openlibs(L); } LuaEx::~LuaEx(void) { lua_close(L); } bool LuaEx::LoadFile(LPCSTR str) { if(luaL_dofile(L, str)) { return false; } return true; } LPSTR LuaEx::LoadString(LPCSTR str) { lua_getglobal(L, str); if (lua_isstring(L, -1)) { return (LPSTR)lua_tostring(L, -1); } return NULL; } int LuaEx::LoadInteger(LPCSTR str) { lua_getglobal(L, str); if (lua_isnumber(L, -1)) { return (int)lua_tointeger(L, -1); } return NULL; } double LuaEx::LoadDouble(LPCSTR str) { lua_getglobal(L, str); if (lua_isnumber(L, -1)) { return (double)lua_tonumber(L, -1); } return 0.0; } bool LuaEx::LoadBoolean(LPCSTR str) { lua_getglobal(L, str); if (lua_isboolean(L, -1)) { return (bool)lua_toboolean(L, -1); } return false; } 在要使用配置文件的地方实例化一个LuaEx类就可以了。 先调用LoadFile载入文件,参数为文件路径。文件格式可以按照如下方式: title = "游戏" width = 640 height = 480 isWindowed = true; useSound = false; hideMouse = false; 结尾分号可加可不加,就是写一个lua脚本,但是只包含变量不包含方法。 之后就可以读取其中内容了。例如 LoadString("title"); //表示载入变量名为title的变量的值。 本类中所有函数的参数都是字符串。 |
|