Lua C++ 交互

作者: 曾令伟 | 来源:发表于2016-04-19 16:50 被阅读773次

http://blog.csdn.net/u012926027/article/details/50402899

appdelegate.cpp 中要调用 register_game_moudle 函数

lua 调用 C++ 函数

int register_game_moudle(lua_State* L)

{

lua_getglobal(L, "_G");

if (lua_istable(L,-1))//stack:...,_G,

{

CCLOG("register_game_moudle");

tolua_open(L);

tolua_module(L,"luagame",0);

tolua_beginmodule(L,"luagame");

tolua_function(L,"intoGame", lua_game_Text_intoGame);

tolua_function(L,"onReceive", lua_game_Text_onReceive);

tolua_function(L,"setRoomData", lua_game_Text_setRoomData);

tolua_function(L,"closeGame", lua_game_Text_closeGame);

tolua_function(L,"freshTable", lua_game_Text_freshTable);

tolua_function(L,"openWap", lua_game_Text_openWap);

tolua_function(L,"showTopPrompt", lua_game_Text_showTopPrompt);

tolua_endmodule(L);

}

lua_pop(L, 1);

return 1;

}

//  Lua函数 luagame.intoGame()  调用   C++函数 lua_game_Text_intoGame

C++ 调用Lua

int sendGameMsg(const char* buf, size_t len)

{

auto engine = LuaEngine::getInstance();

LuaStack* stack = engine->getLuaStack();

lua_State* L = stack->getLuaState();

lua_getglobal(L, "gbLuaCFunc");

lua_pushstring(L, "sendGameMsg");

lua_gettable(L, -2);

lua_pushlstring(L, buf, len);

lua_call(L, 1, 0);

lua_pop(L, 1);

return 1;

}

-- 即C++函数 sendGameMsg() 调用Lua函数:  gbLuaCFunc.sendGameMsg() 

int gameShare(int mode, const char* msg)

{

auto engine = LuaEngine::getInstance();

LuaStack* stack = engine->getLuaStack();

lua_State* L = stack->getLuaState();

lua_getglobal(L, "gbLuaCFunc");

lua_pushstring(L, "gameShare");

lua_gettable(L, -2);

lua_pushnumber(L,mode);

lua_pushstring(L, msg);

lua_call(L, 2, 0);

lua_pop(L, 1);

return 1;

}

相关文章

  • Lua和C交互的简易教程

    Lua栈 要理解Lua和C++交互,首先要理解Lua堆栈。简单来说,Lua和C/C++语言通信的主要方法是一个无处...

  • Lua脚本中实现Class机制

    纯lua脚本实现c++中的类的概念机制,后面空了把lua和c++的交互,lua中直接声明和使用c++中定义的对象补...

  • Lua与C++如何相互交互?

    Lua与C++如何相互交互 通过lua虚拟栈隔离Lua和C/C++类型和彼此内存的差异来实现数据及函数互相调拥。1...

  • Lua api(一)

    前言# 最近看了一下Lua与C++的交互,发现只是写lua而不了解lua与C++相互调用的过程,确实是一件苦恼的事...

  • Lua C++ 交互

    http://blog.csdn.net/u012926027/article/details/50402899 ...

  • Lua和C如何交互(一)

    要理解Lua和C的交互,先要理解堆栈和全局表两个概念 堆栈 Lua和C/C++语言交互的主要方法是一个无处不在的虚...

  • c++调用lua中的函数

    为了方便介绍c++和lua的交互,先整一个基本的示例程序,确保环境可以正常运行 从lua的官网下载lua的源码,下...

  • C++调用lua方式

    目标 使用C++调用lua接口 示例 lua代码(test.lua) C++调用示例(lua_test.cpp) ...

  • 使用vs2013工程C++加载lua的文件

    看了CSDN的Lua进阶教程的视频教程教程链接,对Lua和c++的交互有了初步了解,下面是如何搭建开发环境的教程首...

  • LUA学习二 基本语法

    编程方式 交互式编程 Lua支持交互式编程 ,通过lua 或者lua -i进入: 脚本式编程 将 Lua 程序代码...

网友评论

    本文标题:Lua C++ 交互

    本文链接:https://www.haomeiwen.com/subject/tweilttx.html