#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