tolua++与c++交互

来源:互联网 发布:星河网络娱乐 编辑:程序博客网 时间:2024/06/05 08:16

#include "stdaf.h"


extern "C"

{

#include "lua.h"

#include "lualib.h"

#include "lauxlib.h"

}

#include "tolua++.h"

#include "test.h"

#include "cls"


int _tmain(int argc, _TCHAR* argv[])

{

CPPClass* pCls = new CPPClass;

//init

lua_State* pLuaState = NULL;

pLuaState = lua_open();

luaL_openlibs(pLuaState);


//using pkg to bind

tolua_tet_open(pLuaState);


//load

int status = 0;

status = luaL_loadfile(pLuaState, "test.lua");


//call

if(status -- 0)

{

status = lua_pcall(pLuaState, 0, LUA_MULTRET, 0);

lua_getglobal(pLuaState, pCls);

int ret = lua_pcall(pLuaState,  1, 0, 0);

int a = ret;

}

else

{

printf("SomeThing is Wrong\n");

}


//clear the stack

lua_settop(pLuaState, -2);


//close state

lua_close(pLuaState);


delete pCls;

return 0;

}


这个是c++与tolua++相互调用的大概代码

pCls是一个类

tolua_tet_open(pLuaState);这个里面的 tolua_xxxxxx_open    xxxxxx为pkg的名字,在这里是叫test.pkg

原创粉丝点击