lua 绑定c++

编程入门 行业动态 更新时间:2024-10-25 14:24:59

lua <a href=https://www.elefans.com/category/jswz/34/1769902.html style=绑定c++"/>

lua 绑定c++

Lua Binding即lua绑定

lua绑定的基本意思,就是将C++端的类和方法,暴漏在Lua端,使Lua可以调用现在的C++类。

如网络模块中的MsgLuaFilter、LordNetManger、WWBuffer都是C++的类,但是通过lua binding,Lua代码可以随时调用。

下面是lua绑定的过程。———————————— 分割线 ——————————————


1、准备好你的C++类,并添加到工程的某个路径下,现在以LuaToast为例,工程中已有,路径是WWPlatform/GUISystem/,这里重复创建。LuaToast如下:



2、将LuaToast头文件包含到Classes/ToLua.h,此头文件存放所有需绑定到Lua的类的头文件:


3、打开工程根目录下,cocos2d/tools/tolua/,这里有已经添加的ww_data.ini,ww_gui.ini,ww_net.ini三个配置文件,可以根据需要添加新的ini文件,或在已有的ini中添加。


4、查看ini文件,以ww_gui.ini为例。
    prefix,取ini文件名即可,取其他可以名称也无影响,最好有一定的辨识度
    target_namespace,类的命名空间,如取名ww,lua代码中使用的时候以ww.LuaToast的方式调用。
    headers,需要绑定的类的头文件,现统一为ToLua.h
    classes,需要绑定的类,空格隔开
    skip,不用绑定的方法
    其他不用管

5、绑定LuaToast过程:
    target_namespace为ww不用动
    headers为ToLua.h也不用动,因为LuaToast.h已添加到ToLua.h
    classes中添加LuaToast,注意空格
    skip不用管,因为没有需要不绑定的方法,如果LuaToast中有一个方法void bbbb();Lua端用不着,我就不用绑定,只需要这样写skip = LuaToast::[bbbb],可效仿引擎中的ini文件。

6、在终端中执行genbindings_wawagame.py脚本即可生成绑定文件,确定LuaToast所在的ww_gui.ini在python脚本的cmd_args中是没有被注释的,执行脚本后提示success即为绑定成功。


7、绑定成功会生成绑定文件。目录在Classes/lua-bindings/auto/下,这是由genbindings_wawagame.py的output_dir指定的,将绑定文件添加到工程中。
注意同一个ini文件中配置的C++类会生成在同一个绑定文件中,例如lua_ww_gui_auto.cpp中有WWSceneManager NewButton LuaToast WWNetSprite等绑定类。

8、在LuaSupportFactory::registerCustomLuaModule方法中注册绑定的类,已有net、gui、data的注册,如没有另行添加ini文件则跳过此步。

9、LuaToast绑定完成,lua代码中可以使用了,ww.LuaToast即可调用。

10、如果需要添加新的ini文件,如test.ini,复制已有的ini文件修改参数即可,同时需要在genbindings_wawagame.py脚本的cmd_args中添加,#号注释的表示不想在执行脚本时重新生成绑定文件。


完!

更多推荐

lua 绑定c++

本文发布于:2024-02-25 14:59:51,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1699360.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:绑定   lua

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!