cocos2d-x3.2中将XCode开发的工程转移至VS2010中可能会出现的错误

网上有些代码是xcode写的,我们想在我们自己屌丝的vs上面运行,那要重新建工程,然后载入。但是万万

没想到在VS里新建工程再添加文件,编译后出现了好多错误。下面就把解决这些错误的方法写下来,与大家分享。

1.

首先要把文件格式用文本文件另存为Unicode格式,不然VS会报一些莫名其妙的错误。

2.

VS里不能用bzero函数,改为memset.

XCode:

//bzero(fileName, MAX_FILENAME_LENGTH); 改为:

VS:

memset(fileName, 0,MAX_FILENAME_LENGTH);

3.

XCode:

//_fade_in_outSprite->setBlendFunc((ccBlendFunc){GL_ONE,GL_ONE});

VS:

将上面的代码拆分为两部分

ccBlendFunc tempBlend = {GL_ONE, GL_ONE};

_fade_in_outSprite->setBlendFunc(tempBlend);

4.

获取随机数的函数改为srand()和rand()

XCode:

//arc4random()%6;

VS:

srand(time(NULL));

type = rand()%6;

修改完上面的问题之后,编译成功,游戏成功的运行了起来。可我还没来的及高兴,问题就又来了。我刚移动程序里的精灵,就弹出了一个运行时错误,类指针产生了偏移,非常诡异。我的心情顿时又跌入了谷底……但天无绝人之路,我发现了一条奇怪的警告:“cast between different pointer to member representations, compiler may generate incorrect code。”我google了一下,在这里找到了解决方法:http://msdn.microsoft.com/en-us/library/1s6193tt.aspx
于是,我按照文中所说将相关的精灵类(DiamondSprite)的基类继承顺序颠倒了一下:

XCode:

//classDiamondSprite : public cocos2d::CCObject, public cocos2d::SelectorProtocol { 改为:

VS:

class DiamondSprite : publiccocos2d::SelectorProtocol, publiccocos2d::CCObject{

编译运行,果然没有再次出现运行时错误。至此,我们已经成功的将工程从XCode转入VS中。

不懂的可以加我的QQ群: 239982941(cocos2d-x 3.x学习群)欢迎你的到来哦,看了博文给点脚印呗,谢谢啦~~

时间: 2024-11-10 09:57:50

cocos2d-x3.2中将XCode开发的工程转移至VS2010中可能会出现的错误的相关文章

JavaEE开发SpringBoot工程的创建、运行与配置

软件152 卢仁顺 本篇博客我们就来聊一下如何使用Eclipse+STS插件来创建Spring Boot的工程.Spring Boot可以使我们更容易的使用Spring框架,在Spring Boot中自动配置了好多东西,这就给我们省了不少事儿.今天我们就来创建一个Spring Boot工程,然后在该工程上创建一个测试的Controller并配置上相应的路由,最后我们来看一下运行效果.当然本篇博客我们还会聊一下如何配置Spring Boot. 在Spring Boot的工程中,有一个applica

5个Xcode开发调试技巧

转自Joywii的博客,原文:Four Tips for Debugging in XCode Like a Bro 1.Enable NSZombie Objects(开启僵尸对象) Enable NSZombie Objects可能是整个Xcode开发环境中最有用的调试技巧.这个技巧非常非常容易追踪到重复释放的问题.该技巧会以非常简洁的方式打印指出重复释放的类和该类的内存地址. 怎么开启僵尸对象呢?首先打开 Edit Scheme (或者通过热键?<),然后选择Diagnostics选项卡,

(转)5个Xcode开发调试技巧

1.Enable NSZombie Objects(开启僵尸对象) Enable NSZombie Objects可能是整个Xcode开发环境中最有用的调试技巧.这个技巧非常非常容易追踪到重复释放的问题.该技巧会以非常简洁的方式打印指出重复释放的类和该类的内存地址. 怎么开启僵尸对象呢?首先打开“Edit Scheme”(或者通过热键?<),然后选择Diagnostics选项卡,勾选Enable NSZombie Objects选项. 现在我们可以关掉ARC来测试重复释放的问题.异常和更容易产生

xcode的ios工程目录结构复习

目录结构: a.supporting files: main.m和资源文件 xxx-info.plist:包含应用程序相关属性列表,如版本,程序名等 .pch文件:预编译头文件,相当于MFC里的stdafx.h,默认已经包含了常用的头文件 .strings文件:国际化字符串资源 图片等其他资源 b.frameworks: 程序需要的外部库文件,默认已经包含常用的库,如UIKit,Foundation等库 c.products: 生成执行文件所在目录 d.xib文件:视图文件,提供给interfa

Xcode开发和调试总结

Xcode是iOS开发主要的工具.IDE.关于Xcode的细枝末节,可以参考苹果的官方文档或者众多的说明.此文档主要涉及常用开发和调试注意事项,参考版本为Xcode 5.1.1. 目标设置: 在此,我就不区分Project和Target了,这两方面有很多共同的设置,所以只需要了解需要设置哪些子项就可以了. Deployment Target:设置支持的最低设备版本,这个根据代码的API支持情况而定 Base SDK:理论上应该设置为最新版本的SDK,以支持最高版本 Identity:设置Bund

unity3D 游戏开发之工程代码框架设计思路MVC

unity3D 游戏开发之工程代码框架设计思路MVC 设计目的 1.使工程结构更规范. 2.提高代码可读性,封装性,拓展性 3.提高工作效率. 正文内容: 1.Frame的组成结 (1)视图层(View) (2) 控制层(Control) (3)数据层(Model) 整个Frame是由这三个部分组成,每一层管理属于自己的逻辑,核心思想是游戏逻辑和UI 逻辑独立开.目前遇到的项目工程大多数View和Control逻辑都写在一起,这样后期修改 和维护效率会很低,因为耦合性很高而View又是经常要修改

Android Studio开发JNI工程

使用Android Sutdio创建一个新的工程后,接下来记录创建NDK工程的基本步骤. 本文将达到: 1. 创建NDK工程 2. 在JNI中输出Log语句 3. 指定编译的so库的abi版本 4. 解决在创建NDK工程中的问题 Step: 1. 添加native接口 注意写好native接口和System.loadLibrary()即可了,并无特别之处. P.S:onCreate()中对R.id.txt执行setText(),所以这里需要对xml布局文件按正常的开发步骤进行修改即可. 直接给出

xcode创建一个工程的多个taget,便于测试和发布多个版本

背景:很多时候,我们需要在一个工程中创立多个target,也就是说我们希望同一份代码可以创建两个应用,放到模拟器或者真机上,或者是,我们平时有N多人合作开发,当测试的时候,在A这里装了一遍测A写的那块,当需要测试B写的代码时,我们需要到B那里去装一遍,如果只有一个target的话,那么A的将会被覆盖 还有些时候,我们需要确定到底是A的问题还是B的代码出了问题,这时候都需要建立一个工程能够编译多个版本出来,下文就介绍怎么在一个工程中编译多个版本 好了,闲话不多少,下面正式开始: 我们建立一个默认的

《转》xcode创建一个工程的多个taget,便于测试和发布多个版本

背景:很多时候,我们需要在一个工程中创立多个target,也就是说我们希望同一份代码可以创建两个应用,放到模拟器或者真机上,或者是,我们平时有N多人合作开发,当测试的时候,在A这里装了一遍测A写的那块,当需要测试B写的代码时,我们需要到B那里去装一遍,如果只有一个target的话,那么A的将会被覆盖 还有些时候,我们需要确定到底是A的问题还是B的代码出了问题,这时候都需要建立一个工程能够编译多个版本出来,下文就介绍怎么在一个工程中编译多个版本 好了,闲话不多少,下面正式开始: 我们建立一个默认的