cocos ide使用binding-generator导出来的c++类

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

原文地址:https://www.cnblogs.com/pk-run/p/4350500.html