tolua++与c++交互

本文详细介绍了如何使用C++与tolua++进行相互调用的示例代码,包括初始化、绑定包、加载脚本、调用函数等关键步骤,并通过实例演示了整个过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

#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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值