研究了2周,终于研究出来,绝对原创,请转载的说明出处,这个内容可能有点长,但是如果你按照教程走,则一定会成功的,下面来说步骤:
一:开发环境和SDK
Win8
操作系统:这里在官网上下载企业版或者专业版,因为这两个版本才支持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
;
使用动态库(动态链接库):这里有2
种方法:这里有dll
库和lib
,这里的lib
和静态库的lib
不一样,等会发几个参考链接;
第一种方法:载入时动态链接(隐式调用,静态调用dll
):#pragmacomment(lib,lib”);
还有一个extern “C”
;
第二种方法:运行时动态链接(显示调用,动态调用dll
):
某个函数加载dll,调用完后释放,主要用LoadLibrary.
这里给几个网站:
当然这里讲的是win32
上的;
2.
然后静态库和动态库的区别我搞清楚了,然后我想的是怎么来把cocos2dx
所以的库打包成wp8
的库参考文章:
总结了大致过程
大致的调用过程为: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
文件夹,添加项目,选择
空静态库,位置在刚刚建立的liblua文件夹下面:
1.
这时我又尝试了另外一种方法:了解到quickv3
框架如果编码的话,主要是用lua
写的,而且http://cn.cocos2d-x.org/tutorial/show?id=1303
这个网址是说的怎么来建立quick
项目的。
3.
这是我想到了第三种方法:我直接模仿quickv3
的libquickx
项目来做一个我自己的liblua
库,最终成功了,下面我来说一下过程和我遇到的问题:其实就是一些配置和路径的设置;