關(guān)于C++讀取Lua配置文件實(shí)現(xiàn)案例
使用C++讀取Lua配置文件實(shí)現(xiàn)案例是本文要介紹的內(nèi)容,主要是來了解并學(xué)習(xí)一下lua的配置文件的使用,本文內(nèi)容主要是以代碼來實(shí)現(xiàn),具體內(nèi)容來看本文詳解。
- //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); //讀取浮點(diǎn)型
- 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;
- }
在要使用配置文件的地方實(shí)例化一個(gè)LuaEx類就可以了。
先調(diào)用LoadFile載入文件,參數(shù)為文件路徑。文件格式可以按照如下方式:
- title = "游戲"
- width = 640
- height = 480
- isWindowed = true;
- useSound = false;
- hideMouse = false;
結(jié)尾分號(hào)可加可不加,就是寫一個(gè)lua腳本,但是只包含變量不包含方法。
之后就可以讀取其中內(nèi)容了。例如
- LoadString("title"); //表示載入變量名為title的變量的值。
本類中所有函數(shù)的參數(shù)都是字符串。
小結(jié):關(guān)于C++讀取Lua配置文件實(shí)現(xiàn)案例的內(nèi)容介紹完了,希望通過本文的學(xué)習(xí)能對(duì)你有所幫助!