研究了2周,终于研究出来,绝对原创,请转载的说明出处,这个内容可能有点长,但是如果你按照教程走,则一定会成功的,下面来说步骤:
一:开发环境和SDKWin8操作系统:这里在官网上下载企业版或者专业版,因为这两个版本才支持Hyper-V服务;windowsphone SDK8.0;vs2012或者vs2013:如果你的真机用的操作系统是window phone 8.1,那么你的vs2012要更新update,但是我这里建议用vs2013,就懒得更新了;Cocos2dx3.0:官网下载;quickv3:地址为https://github.com/dualface/v3quick,因为我是模仿quickv3来打包的,所以你可以下载下来研究一下,后面会讲;真机:这里我用的操作系统为8.1; 二:真机测试1.调试前的准备:
首先你必须是微软开发者账号(现在是免费的),现在的微软的账号(就是你安装win8操作系统的时候叫你输入的账号)和开发者账号需要绑定的;主要是手机上要下载“用于开发人员的预览”这个软件,然后安装就行了,可以参考http://jingyan.baidu.com/article/ff42efa9193fb8c19e22020b.html;2.模拟器调试:我这里没用模拟器调试,因为我的机子不支持虚拟化支持,如果要开启的话,你只需要打开bios设置就行了,所以就没用模拟器调试;3.真机调试:下载好cocos2dx3.0以后,打开build文件下的cocos2d-wp8.vc2012.sln,然后选择cpp-tests文件夹,然后把项目cpp-tests设置为启动项目。这时也要把模拟器设置device,平台设置为arm:
然后运行看是否成功,如果能在真机上跑的话,恭喜你测试成功;当然这里有可能调试遇到一个问题,就是指定的通信端口已经由另外一个程序使用,原因是你的手机原来用过真机调试并且通过了的,在手机上面有测试的项目,那么你就把它删除就行了;三:打包到wp8方法尝试并最终成功:这里我尝试了多种方法,但是最终那一种成功了。 1.首先我先想的是到底打包成静态库还是动态库,当时就查了一下他们之间的区别,我这里先就我说看的总结一下:创建静态库:建立win32,然后生成,参考http://www.cnblogs.com/skynet/p/3372855.html; 使用静态库(也叫静态链接库):http://www.cnblogs.com/skynet/p/3372855.html上面有方法,或者使用#pragma上面有方法,或者使用 “#pragma comment(lib,”xxx,lib”);这时需要将静态库lib拷贝到工程目录下”,静态链接库的特点是:拷贝,不能增量更新; 创建动态库:参考http://www.cnblogs.com/skynet/p/3372855.html; 使用动态库(动态链接库):这里有2种方法:这里有dll库和lib,这里的lib和静态库的lib不一样,等会发几个参考链接;第一种方法:载入时动态链接(隐式调用,静态调用dll):#pragmacomment(lib,”xxx,lib”);还有一个extern “C”;第二种方法:运行时动态链接(显示调用,动态调用dll):某个函数加载dll,调用完后释放,主要用LoadLibrary.这里给几个网站:http://www.cnblogs.com/skynet/p/3372855.html,http:/www.cppblog.com/codejie/archive/2009/09/24/97141.html,,http://www.cppblog.com/codejie/archive/2009/09/24/97141.html,http://blog.csdn.net/wallaceli1981/article/details/5740718,,http://blog.sina.com.cn/s/blog_72b1bc6a0101cnu7.html,,http://blog.sina.com.cn/s/blog_725dd1010100ug2z.html,,http://blog.csdn.net/crich_moon/article/details/6039939,,当然这里讲的是win32上的; 2.然后静态库和动态库的区别我搞清楚了,然后我想的是怎么来把cocos2dx所以的库打包成wp8的库参考文章:http://www.cnblogs.com/leluyun/archive/2012/09/28/2707564.htmlhttp://www.devdiv.com/Windows_Phone-WP8新特性【8】Windows_Phone_8界面调用一般DLL,非Runtime_Component方法-thread-135252-1-1.htmlhttp://www.devdiv.com/Windows_Phone-WP8新特性【8】Windows_Phone_8界面调用一般DLL,非Runtime_Component方法-thread-135252-1-1.htmlhttp://www.devdiv.com/Windows_Phone-wp_metro_app_c_native_dll-thread-134611-1-1.htmlhttp://www.devdiv.com/Windows_Phone-wp_metro_app_c_native_dll-thread-134611-1-1.html总结了大致过程大致的调用过程为:C# Phone Application=>windows phone 运行时组件=>windowsphone 空静态库或者空动态链接库;这时我想到的第一种方法是先建立windows phone 空静态库,然后把cocos2dx所以的源代码拷贝到里面去(后来发现quickv3就是这样做的),但是太多了,就没做。然后我这时把cocos2dx3.0建立的c++项目打开发现有wp8的分支,而且除了liblua库其余所有的库都有wp8的包,那么我就只打liblua库成wp8就行了。
所以我打开打开build文件下的cocos2d-wp8.vc2012.sln,然后选择cpp-empty-test文件夹,然后在cocos2d-x-3.0\tests\cpp-empty-test\proj-wp8-xaml文件下面添加了一个文件夹liblua文件夹,然后右键点击cpp-empty-test文件夹,添加项目,选择windows phone 空静态库,位置在刚刚建立的liblua文件夹下面:
但是这时编译运行遇到到很多问题,而且最大的问题是无法解析的外部符号(这个问题后面会解释的),这时我暂停了几天,又在网上问了一下,了解到quickv3框架。 1.这时我又尝试了另外一种方法:了解到quickv3框架如果编码的话,主要是用lua写的,而且http://cn.cocos2d-x.org/tutorial/show?id=1303这个网址是说的怎么来建立quick项目的。然后项目建立成功后,生成的项目有wp8的分支。但时这时quickv3发现是用的cocos2dx3.2来封装的,而我用的是cocos2dx3.0,由于我现在的lua代码的框架都写好了,所以就懒得改,而且用cocos2dx3.2可能还有风险,至少3.0稳定一些。所以我当时想的是把cocos2dx3.0的库直接替换掉libquickx(quickv3里面的一个项目)里面的库(就是把库的源代码替换掉),但是出问题了,quickv3自己又多了一些封装,而且事件处理自己又封装了一些,所以这时候没法弄,还是没成功。 3.这是我想到了第三种方法:我直接模仿quickv3的libquickx项目来做一个我自己的liblua库,最终成功了,下面我来说一下过程和我遇到的问题:其实就是一些配置和路径的设置; @1:上面已经说了(第三的第2点)先把liblua项目建好,然后把liblua项目设置成启动项目,然在liblua项目下面添加筛选器如下:
这是建立的项目:
然后在cocos2dx项目把对应的文件夹找到源文件加入进来就行了; auto文件夹下的:cocos2d-x-3.0\cocos\scripting\lua-bindings\auto
lua文件夹下的:cocos2d-x-3.0\external\lua\lua (这个很多,我只截取一部分) 
Manual 文件夹下的:cocos2d-x-3.0\cocos\scripting\lua-bindings\manual
script文件夹下的:cocos2d-x-3.0\cocos\scripting\lua-bindings\script 
tolua文件夹下的:cocos2d-x-3.0\external\lua\tolua 
好,这里基本上添加完了,然后是配置
@2:在liblua这个项目中加入对cocos其它库的依赖,右键点击liblua项目,打开属性页,在通用属性下的框架和引用中
单击添加新引用:添加库的依赖,加了以后是这样的:
由于这里普通上传只能有10张图片,在下面回复中继续


















请问quick怎么打包lua到wp8上面