【cocos2d-x 3.5】Lua与C++简单交互
2015-05-19 22:03
483 查看
(一)lua调用C
1)在VS工程中编写下面两个文件① Luatools.h
extern "C" { #include"lua.h" } int cc_lua_log(lua_State *L);
② Luatools.cpp
#include"LuaTools.h" #include"cocos2d.h" int cc_lua_log(lua_State *L){ cocos2d::log("Log : %s",lua_tostring(L,1)); return 1; }
2)在VS的AppDelegate.cpp中做如下修改
① 引入头文件#include"LuaTools.h"
② 在applicationDidFinishLaunching方法中添加代码
LuaStack* stack = LuaEngine::getInstance()->getLuaStack(); lua_State *L = stack->getLuaState(); lua_register(L, "cc_lua_log", cc_lua_log);
注:这段代码要在 ScriptEngineManager::getInstance()->setScriptEngine(engine)前加入
3)在lua部分直接可以调用cc_lua_log()
(二)C调用lua
1)在Lua工程新建一个文件Test.luafunction add(x,y) return x+y end
2)C++端代码如下
lua_State* ls = lua_open(); const char *path = String::createWithFormat("%s", FileUtils::getInstance()->fullPathForFilename("Test.lua"))->getCString(); luaL_openlibs(ls); int isOpen = luaL_dofile(ls, path); lua_getglobal(ls, "add"); lua_pushnumber(ls, 100); lua_pushnumber(ls, 120); lua_call(ls, 2, 1); int sum = (int)lua_tonumber(ls, -1); lua_pop(ls, 1); cocos2d::log("ok! lua return result is %d",sum);
相关文章推荐
- cocos2d-x lua与c++简单交互
- cocos2d-Lua与c++交互,lua如何绑定C++类。
- Cocos2d-x开发系列 交叉开发模式四 C++和Lua的数据交互
- VS 2013 编译Lua源码,并与C++ 进行简单交互
- c++ 与 lua 简单交互1 (LUA CAPI)
- 【cocos2d-x 3.5】Lua的简单面向对象
- 使用cocos2d-x 3.x lua 开发时 lua与c++交互
- cocos2d-x lua tolua++ 面向对象 / cocos2dx3.0 lua C++交互
- Lua与C/C++的交互1:C/C++与Lua最简单的互动
- 【cocos2d-x 3.5】简单Lua 热更新
- 简单的C++与LUA交互
- cocos2d-x学习笔记(十一)c++与lua交互回调函数的处理
- Lua 与 C++的简单交互
- 【cocos2d-x 3.5】简单Lua 热更新
- Cocos2d-x开发系列 HYBrid模式四 C++和Lua的数据交互
- Lua与C/C++的交互1:C/C++与Lua最简单的互动
- LUA与C++交互(在LUA脚本里调用C++函数传参)
- lua 调用C++ DLL函数简单实例
- Lua 与C/C++ 交互系列: Lua调用C/C++函数(2).
- Lua和C++交互详细总结