time:2015/03/19
cocos版本:3.2
描述:用了ide运行一个实例[1]的时候需要增加c++类,正确导出来之后,直接使用vs2012启动是没有问题的,但是使用ide启动却提示找不到模块
学习:
(1)使用3.2自带的tolua把自定义类导出来,并作为一个模块添加到lua环境中,参考[2],不多说了。
(2)使用
* 使用vs2012直接启动没有问题
* 使用ide直接启动,提示找不到模块
解决:
把ide的启动程序换成vs2012编译的exe就可以了。
* 项目-->属性中最后一个 --> "运行/调试设置" -->双击右边打开启动配置
* win7/win8 -->runtime路径中修改PrebuiltRuntimeLua.exe为你自己的编译的exe
总结:
(1)启动程序的实质只是提供了一个跨平台的启动入口,另外做的一件事情就是构建了lua的环境,同时把我们自定义的类作为一个模块加到lua环境中
(2)如此说来,直接启动vs2012是没有问题的,因为从main.cpp到AppDelegate.cpp执行一遍,就会运行到自己加的注册模块函数,所以自己添加的模块就自然在lua环境里面了
(3)但是,ide根本就不需要工程下面的frameworks下面的runtime-src,从创建新lua工程就看到,一开始可以不选生成c++代码
(4)所以说,其实默认的PrebuiltRuntimeLua.exe程序和我们自己生成的.exe是一样的东西,但是我们自己生成的exe还包含了我们自定义c++类的模块注册到lua环境的代码,而且这才是我们想要的
(5)over!
参考:
[1]http://cn.cocos2d-x.org/tutorial/show?id=1998
[2]http://my.oschina.net/guyson/blog/338375