C++读取lua脚本

#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的变量的值。
本类中所有函数的参数都是字符串。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值