美文网首页
将lua-binding结果引入到项目中使用

将lua-binding结果引入到项目中使用

作者: 许彦峰 | 来源:发表于2022-03-29 15:51 被阅读0次

lua绑定之后,我们需要修改项目,将绑定后的文件正确的引入到c++工程里面,才能在lua层进行正常的调用。

1.lua-binding

具体的lua绑定操作在cocos2d-x/tools/tolua/genbindings.py,正确binding后,lua对应的c++绑定代码位置在
cocos2d-x/cocos/scripting/lua-bindings/auto

2.引入binding代码

libluacocos2d项目解决方案里面添加现有项,将hpp、cpp文件引用到项目:

可能遇到的问题:
  • 在hpp里面,找不到头文件,在项目属性里面添加附加包含目录即可
  • 参数无法转换:

这种情况一般都是lua-bindingcocos2d-x/tools/bindings-generator/targets/lua/conversions.yaml的配置中,关于类型转换没有覆盖到这个接口造成的。具体解决方案参考这里

3.项目解决方案修改

在项目解决方案的AppDelegate.cpp里面,有注册lua模块的入口

bool AppDelegate::applicationDidFinishLaunching(){
  // ...
  lua_module_register();
  // ...
}

跳转到lua_module_register.cpp里面,进行如下修改:

// 1.引入lua-binding生成的hpp头文件
#include "scripting/lua-bindings/auto/lua_cocos2dx_xxx_auto.hpp"
int lua_module_register(lua_State* L){
  // 2.调用注册模块接口
  register_all_cocos2dx_xxx(L);
}

重新编译项目,在lua中就能正确使用接口了

相关文章

网友评论

      本文标题:将lua-binding结果引入到项目中使用

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