VS搭建lua开发环境和LuaBridge注册c++类(cocos2dx项目)(一)


由于项目使用Lua开发,最近在学习lua,所以就准备在vs下搭建lua的开发环境。项目使用LuaBridge为Lua绑定C++对象,这篇文章就把LuaBridge用法一起写进来了,下面开始正文。。。

步骤

1.生成Lua静态库(非cocos2dx项目下可以参考这篇文章http://www.fusijie.com/blog/2014/08/31/how-to-complie-cpp-with-lua-in-the-vs/

(1)首先去Lua官网下载Lua,最新的应该是Lua 5.2.3 下载地址。下载下来之后,解压,放在一边待用。。。也可以去cocos2dx的源码里面获取,路径如下 E:\cocos2d-x-3.1.1\external\lua\lua

(2)创建cocos2dx项目,右击解决方案添加新项目,选择win32控制台程序,确定,选择静态库,勾去预编译头,OK。。。如下图:

(3).到liaLua目录下新建文件夹LuaSrc,把下载的lua代码拷贝进去。。。进入项目添加到libLua下,在配置属性->c/c++/预处理器定义下添加_CRT_SECURE_NO_WARNINGS,把输出目录设置成和其他静态库一样,生成,在LuaTest\proj.win32\Debug.win32目录下就有了一个libLua.lib静态库文件,至此,我们已经成功生成Lua静态库。

2.添加LuaBridge到项目中,并注册对象

ps:因为LuaBridge需要使用Lua,所以要给项目附加依赖项和附加包含目录,分别为:libLua.lib、$(EngineRoot)libLua

(1).先下载LuaBridge源文件,LuaBridge文件进入项目目录,添加文件夹LuaBridge,然后把下载好的文件添加进文件夹中。进入项目,添加文件夹LuaBridge,添加现有项,把LuaBridge中的文件添加到项目中,在代码中添加#include "LuaBridge/LuaBridge.h"头文件,测试OK,下面开始注册c++对象给lua使用

(2).注册2个类测试使用UIManage和Widget类。先说如何注册Widget,需要添加几个库libGUI,libExtension,libCocostudio,自行添加。代码如下:

 1 bool HelloWorld::init()
 2 {
 3     //////////////////////////////
 4     // 1. super init first
 5     if (!Layer::init())
 6     {
 7         return false;
 8     }
 9 
10     m_luastate = luaL_newstate();
11     luaL_openlibs(m_luastate);
12     initScript();
13 
14 
15     return true;
16 }
17 
18 void HelloWorld::initScript()
19 {
20     getGlobalNamespace(m_luastate)
21 
22         .beginNamespace("game")
23 
24         .beginClass<Widget>("Widget")
25         .addFunction("getChildByTag",&Widget::getChildByTag)
26         .endClass()
27 
28         .endNamespace()
29 
30         ;
31 }
View Code

OK,环境搭建和c++类注册介绍到这里,下篇开始写2个类,完成按钮事件注册。

优质内容筛选与推荐>>
1、线程、同步、并发名词解释(摘录)
2、C++有没有string转化int的函数,怎样转换
3、每日记载内容总结41
4、iOS 和Android客户端测试区别整理ing
5、pojo,javabean与entitybean


长按二维码向我转账

受苹果公司新规定影响,微信 iOS 版的赞赏功能被关闭,可通过二维码转账支持公众号。

    阅读
    好看
    已推荐到看一看
    你的朋友可以在“发现”-“看一看”看到你认为好看的文章。
    已取消,“好看”想法已同步删除
    已推荐到看一看 和朋友分享想法
    最多200字,当前共 发送

    已发送

    朋友将在看一看看到

    确定
    分享你的想法...
    取消

    分享想法到看一看

    确定
    最多200字,当前共

    发送中

    网络异常,请稍后重试

    微信扫一扫
    关注该公众号





    联系我们

    欢迎来到TinyMind。

    关于TinyMind的内容或商务合作、网站建议,举报不良信息等均可联系我们。

    TinyMind客服邮箱:support@tinymind.net.cn