研究了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上面有方法,或者使用#pragmacomment(lib,”xxx,lib”); 这时需要将静态库lib 拷贝到工程目录下”,静态链接库的特点是:拷贝,不能增量更新;
创建动态库:参考http://www.cnblogs.com/skynet/p/3372855.html
使用动态库(动态链接库):这里有2 种方法:这里有dll 库和lib ,这里的lib 和静态库的lib 不一样,等会发几个参考链接;
第一种方法:载入时动态链接(隐式调用,静态调用dll ):#pragmacomment(lib,lib”); 还有一个extern “C”
第二种方法:运行时动态链接(显示调用,动态调用dll : 某个函数加载dll,调用完后释放,主要用LoadLibrary.
这里给几个网站:
http://www.cnblogs.com/skynet/p/3372855.htmlhttp://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.html
http://www.devdiv.com/Windows_Phone-WP8%E6%96%B0%E7%89%B9%E6%80%A7%E3%80%908%E3%80%91Windows_Phone_8%E7%95%8C%E9%9D%A2%E8%B0%83%E7%94%A8%E4%B8%80%E8%88%ACDLL%EF%BC%8C%E9%9D%9ERuntime_Component%E6%96%B9%E6%B3%95-thread-135252-1-1.html
http://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 文件夹,添加项目,选择 空静态库,位置在刚刚建立的liblua文件夹下面:

Cocos2dx+lua打包wp8教程的更多相关文章

  1. xamarin.ios – ShareKit与MonoTouch如何?

    有人可以验证ShareKit实际上是否可用于MonoTouch并指导我完成使其工作所需的步骤?解决方法您首先从getsharekit.com下载还是使用ShareKit2.0?

  2. ios – iPhone崩溃日志不能正确地符号化并且是双重间隔的

    任何建议超过欢迎.谢谢.解决方法当这件事发生在我身上时,它只是我通过电子邮件收到的日志.如果我记得,至少有一些是在.msg文件中,我不得不把它们拿出来.它可能是Exchange编码更改.如果你显示不可见的字符,你可能会看到每个字符之间的东西.您可以找到并替换它们以删除它们或更改编辑器中的编码.

  3. ios – Xcode 7 beta 2:LaunchScreen.storyboard无法打开文档

    我在两个不同的Mac(iMac和MacBookpro)上收到这个错误.不知道为什么人们不能再现它,但我需要一些帮助.在运行XX优胜美地10.10.4的Mac上运行Xcode7beta2(15六月’15).甚至无法编译和运行我的项目..我从创建菜单创建了一个视图应用程序项目,就是这样.编辑:我试图删除并重新添加storyboard文件(也可以打开Main.storyboard插件),我仍然得到相同的

  4. ios – 在/usr/lib/system/libcache.dylib中,缺少必需的架构armv6

    在试图为iphoneos编写一个虚拟程序时,Xcode4,gcc似乎没有超出初始的sysroot目录如果我把sysroot,以下作品,但感觉非常干酪,而且不可伸缩.这里发生了什么?

  5. xcode – 如何正确设置运行路径,搜索路径和安装名称?

    任何人对我可能做错了什么有什么想法?

  6. ios – OS X:将.dylib转换为.a / .o(动态到静态)?

    假设我已经阅读了thiscaveat,我仍然希望将TBB用作静态链接库.但我真的不想重写TBBmakefile来生成libtbb.a而不是libtbb.dylib.是否有一个简单的命令行方式将libtbb.dylib转换为libtbb.o并使用相同的入口点?

  7. 如何在iOS上使用嵌入式专用框架和应用程序中的静态库

    在私有框架,应用程序和扩展中使用静态库中的类的正确方法是什么?

  8. Swift vs Objective-C:未来看好 Swift 的十个理由

    Swift将Objective-C头文件(.h)和实现文件(.m)合并成了一个代码文件。程序员在Objective-C上会遇到的大量内存溢出问题在Swift上是不可能的。在Objective-C中,使用文本字符串将两块信息组合起来的操作非常繁琐。Swift采用当代编程语言的特性,比如使用“+”操作符将两个字符串加到一起,这在Objective-C中是没有。

  9. Swift学习笔记之公用库和模块化

    静态库和动态库先补充一下静态库和动态库的知识。静态库静态库的代码追加到可执行文件内,被多次使用就有多份冗余拷。iOS中静态库的形式是.a和.framework。不过各个应用所使用的自己的公用库,最终都需要link进可执行文件,所以本质上还是一个静态库。现状出于安全层面的考虑,AppStore不允许使用第三方的动态链接库。我们可以通过framework编写自己的公用库。iOS-Universal-Framework也宣布停止更新。模块模块化是在2012年的LLVMDevelopersMeeting中提出的。

  10. Swift vs. Objective-C:未来看好 Swift 的十个理由

    Swift将Objective-C头文件(.h)和实现文件(.m)合并成了一个代码文件。程序员在Objective-C上会遇到的大量内存溢出问题在Swift上是不可能的。在Objective-C中,使用文本字符串将两块信息组合起来的操作非常繁琐。Swift采用当代编程语言的特性,比如使用“+”操作符将两个字符串加到一起,这在Objective-C中是没有。

随机推荐

  1. 【cocos2d-x 3.x 学习笔记】对象内存管理

    Cocos2d-x的内存管理cocos2d-x中使用的是上面的引用计数来管理内存,但是又增加了一些自己的特色。cocos2d-x中通过Ref类来实现引用计数,所有需要实现内存自动回收的类都应该继承自Ref类。下面是Ref类的定义:在cocos2d-x中创建对象通常有两种方式:这两中方式的差异可以参见我另一篇博文“对象创建方式讨论”。在cocos2d-x中提倡使用第二种方式,为了避免误用第一种方式,一般将构造函数设为protected或private。参考资料:[1]cocos2d-x高级开发教程2.3节[

  2. 利用cocos2dx 3.2开发消灭星星六如何在cocos2dx中显示中文

    由于编码的不同,在cocos2dx中的Label控件中如果放入中文字,往往会出现乱码。为了方便使用,我把这个从文档中获取中文字的方法放在一个头文件里面Chinese.h这里的tex_vec是cocos2dx提供的一个保存文档内容的一个容器。这里给出ChineseWords,xml的格式再看看ChineseWord的实现Chinese.cpp就这样,以后在需要用到中文字的地方,就先include这个头文件然后调用ChineseWord函数,获取一串中文字符串。

  3. 利用cocos2dx 3.2开发消灭星星七关于星星的算法

    在前面,我们已经在GameLayer中利用随机数初始化了一个StarMatrix,如果还不知道怎么创建星星矩阵请回去看看而且我们也讲了整个游戏的触摸事件的派发了。

  4. cocos2dx3.x 新手打包APK注意事项!

    这个在编译的时候就可以发现了比较好弄这只是我遇到的,其他的以后遇到再补充吧。。。以前被这两个问题坑了好久

  5. 利用cocos2dx 3.2开发消灭星星八游戏的结束判断与数据控制

    如果你看完之前的,那么你基本已经拥有一个消灭星星游戏的雏形。开始把剩下的两两互不相连的星星消去。那么如何判断是GameOver还是进入下一关呢。。其实游戏数据贯穿整个游戏,包括星星消除的时候要加到获得分数上,消去剩下两两不相连的星星的时候的加分政策等,因此如果前面没有做这一块的,最好回去搞一搞。

  6. 利用cocos2dx 3.2开发消灭星星九为游戏添加一些特效

    needClear是一个flag,当游戏判断不能再继续后,这个flag变为true,开始消除剩下的星星clearSumTime是一个累加器ONE_CLEAR_TIME就是每颗星星消除的时间2.连击加分信息一般消除一次星星都会有连击信息和加多少分的信息。其实这些combo标签就是一张图片,也是通过控制其属性或者runAction来实现。源码ComboEffect.hComboEffect.cpp4.消除星星粒子效果消除星星时,为了实现星星爆裂散落的效果,使用了cocos2d提供的粒子特效引擎对于粒子特效不了

  7. 02 Cocos2D-x引擎win7环境搭建及创建项目

    官网有搭建的文章,直接转载记录。环境搭建:本文介绍如何搭建Cocos2d-x3.2版本的开发环境。项目创建:一、通过命令创建项目前面搭建好环境后,怎样创建自己的Cocos2d-x项目呢?先来看看Cocos2d-x3.2的目录吧这就是Cocos2d-x3.2的目录。输入cocosnew项目名–p包名–lcpp–d路径回车就创建成功了例如:成功后,找到这个项目打开proj.win32目录下的Hello.slnF5成功了。

  8. 利用cocos2dx 3.2开发消灭星星十为游戏添加音效项目源码分享

    一个游戏,声音也是非常的重要,其实cocos2dx里面的简单音效引擎的使用是非常简单的。我这里只不过是用一个类对所有的音效进行管理罢了。Audio.hAudio.cpp好了,本系列教程到此结束,第一次写教程如有不对请见谅或指教,谢谢大家。最后附上整个项目的源代码点击打开链接

  9. 03 Helloworld

    程序都有一个入口点,在C++就是main函数了,打开main.cpp,代码如下:123456789101112131415161718#include"main.h"#include"AppDelegate.h"#include"cocos2d.h"USING_NS_CC;intAPIENTRY_tWinMain{UNREFERENCED_ParaMETER;UNREFERENCED_ParaMETER;//createtheapplicationinstanceAppDelegateapp;return

  10. MenuItemImage*图标菜单创建注意事项

    学习cocos2dx,看的是cocos2d-x3.x手游开发实例详解,这本书错误一大把,本着探索求知勇于发现错误改正错误的精神,我跟着书上的例子一起调试,当学习到场景切换这个小节的时候,出了个错误,卡了我好几个小时。

返回
顶部