关于quick-cocos2d-x新建自定义类绑定失败的处理方法

关于quick-cocos2d-x新建自定义类绑定失败的处理方法,第1张

概述先把quick-cocos2d-x绑定自定义类的流程简单写一下 1.用quick-cocos2d-x自带的Player3.exe创建工程,或者用cocos ide创建工程 2.打开frameworks\runtime-src\proj.win32下的工程文件,重新编译一遍,应当可以编译通,注意生成程序的文件名与默认不同 3.新建自己的类,位置放在frameworks\runtime-src\Cla 先把quick-cocos2d-x绑定自定义类的流程简单写一下 1.用quick-cocos2d-x自带的Player3.exe创建工程,或者用cocos IDe创建工程 2.打开frameworks\runtime-src\proj.win32下的工程文件,重新编译一遍,应当可以编译通,注意生成程序的文件名与默认不同 3.新建自己的类,位置放在frameworks\runtime-src\Classes\quick-src\extra下,编译一下 4.修改runtime-src\Classes\quick-src\extra\luabinding\cocos2dx_extra_luabinding.tolua文件,开头增加$#include "mylib/MyClass.h",后面增加自己的类定义 5.执行frameworks\runtime-src\Classes\quick-src\extra\luabinding\build.bat 6.重新编译工程 7.这样在自己的Lua代码中就可以调用自定义类的函数了 如果是静态函数,就是cc.类名:函数名,比如cc.MyClassA:GetResult(2,2) 如果不是静态函数,需要先建一个create静态函数,里面返回自己类的指针,然后用该指针才能调用成员函数 例如: c++ MyClassA *MyClassA::create() { MyClassA *request = new MyClassA(); return request; } lua local myClassA = cc.MyClassA:create() print(myClassA:GetMyResult(2,2)) 8.为了调用更规范,创建一个对应的Lua类,把cc.MyClassA这种操作封装到该类中,就可以像其它类一样使用了 结果发现在第6步编译时提示出错 2>cocos2dx_extra_luabinding.obj : error LNK2019: 无法解析的外部符号 _toluafix_ref_function,该符号在函数 "int __cdecl tolua_cocos2dx_extra_luabinding_httpRequest_createWithUrl00(struct lua_State *)" (?tolua_cocos2dx_extra_luabinding_httpRequest_createWithUrl00@@YahpAulua_State@@@Z) 中被引用 2>cocos2dx_extra_luabinding.obj : error LNK2019: 无法解析的外部符号 _toluafix_isfunction,该符号在函数 "int __cdecl tolua_cocos2dx_extra_luabinding_httpRequest_createWithUrl00(struct lua_State *)" (?tolua_cocos2dx_extra_luabinding_httpRequest_createWithUrl00@@YahpAulua_State@@@Z) 中被引用 2>C:\workspace\QuickGame2\frameworks\runtime-src\proj.win32\../../../runtime/win32/QuickGame2.exe : Fatal error LNK1120: 2 个无法解析的外部命令 即便不新建自己的类,直接执行build.bat,也会无法编译通 新建一个工程,用文件比较工具比较原始的runtime-src\Classes\quick-src\extra\luabinding目录,和重新生成的同目录,发现代码有所不同 比如原始代码是 extern "C" { #include "lua.h" #include "tolua++.h" } #include "tolua_fix.h" 新生成的变成 extern "C" { #include "lua.h" #include "tolua++.h" #include "tolua_fix.h" } 虽然不是非常清楚其中的区别,但是这部分修改明显和我新加的类无关。 经过比较两个文件夹,把和我新加的类以外的代码改成原始代码后,编译正常。 总结

以上是内存溢出为你收集整理的关于quick-cocos2d-x新建自定义类绑定失败的处理方法全部内容,希望文章能够帮你解决关于quick-cocos2d-x新建自定义类绑定失败的处理方法所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:http://outofmemory.cn/web/1048473.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-25
下一篇2022-05-25

发表评论

登录后才能评论

评论列表(0条)

    保存