Lua使用C++中的类——调用类方法并访问类变量

Lua使用C++中的类——调用方法并访问类变量
xxnull 2013-04-18 11:21

{
lua_pushnumber(L,pT->m_x); 
}
else if (strcmp(lua_tostring(L,2),"Add") == 0)
lua_pushcfunction(L,CallAdd);
else
return 0;
return 1;

static int lua_newindex(lua_State* L)
CTest* pT = *(CTest**)lua_topointer(L,1);
if (strcmp(lua_tostring(L,"m_x") == 0)
pT->m_x = (int)lua_tonumber(L,3);
int main(int argc,char * argv[])
lua_State *L = lua_open();
luaopen_base(L); 
// 往lua中注册
注册用于创建类的全局函数
lua_setglobal(L,"CTest");
luaL_newMetatable(L,"CTest"); // 创建一个元表
lua_pushstring(L,"__gc"); // 垃圾回收
lua_settable(L,-3); // 公共函数调用的实现就在此啊



lua_pop(L,68); font-family:Simsun; font-size:14px; line-height:23.796875px">luaL_dofile(L,"LuaUseClass.lua"); 
lua_close(L);

makefile

CPPFLAG=`pkg-config --cflags lua5.1` LDFLAG=`pkg-config --libs lua5.1` CC=g++ all: LuaUseClass LuaUseClass : LuaUseClass.cpp $(CC) -o $@ $(CPPFLAG) $(LDFLAG) $<

测试环境
OS:Ubuntu 11.04
Lua:5.1.4

运行结果:

相关文章

1.github代码实践源代码是lua脚本语言,下载th之后运行thmai...
此文为搬运帖,原帖地址https://www.cnblogs.com/zwywilliam/...
Rime输入法通过定义lua文件,可以实现获取当前时间日期的功能...
localfunctiongenerate_action(params)localscale_action=cc...
2022年1月11日13:57:45 官方:https://opm.openresty.org/官...
在Lua中的table(表),就像c#中的HashMap(哈希表),key和...