Cocos2d-x error note

之前学cocos2d-x时遇到很多问题,每次都要到网上搜罗半天才解决,但下次再遇到类似问题时又忘记是怎么回事了。所以我决定把自己遇到的问题记录下来,

1、cocos2d::xxx被声明为否决

>e:\haoyework\vs2012\plane\cocos2d\cocos\2d\platform\win32\CCFileUtilsWin32.h(102): warning C4996: 'cocos2d::FileUtils::getFileData': 被声明为已否决 (platform\win32\CCFileUtilsWin32.cpp)

1>          E:\HaoyeWork\VS2012\plane\cocos2d\cocos\2d\platform/CCFileUtils.h(101) : 参见“cocos2d::FileUtils::getFileData”的声明


解决办法:在网上搜到这个:vs认为你的xxx是不安全的
加个编译选项就可以了。于是按 Alt+F7打开项目属性,点击“capturedata属性”,找到“配置属性” -> “C/C++” -> “命令行”,

在右侧的“附加选项”文本编辑框里加入 【/D "_CRT_SECURE_NO_DEPRECATE" 】(注意加入的是【】符号里面的文本),

点确定。再次编译,就没有这种警告了。

(http://zhidao.baidu.com/link?url=B1PFLU8cruYPHrx51DKUwn4yv4KjZOAqfO7N43vKDEVlbpYa_gV4lVVEa0pSqIJg70InQWf0I68cLtPrKk-UFa)

问题解决,而且之前很多相应的警告都随之消失,但感觉只是把警告隐藏起来而已,警告依然存在


2、无法打开包括文件

2>e:\haoyework\vs2012\plane\classes\HelloWorldScene.h(5): fatal error C1083: 无法打开包括文件:“cocostudio/CocoStudio.h”: No such file or directory (..\Classes\AppDelegate.cpp)
2>e:\haoyework\vs2012\plane\classes\HelloWorldScene.h(5): fatal error C1083: 无法打开包括文件:“cocostudio/CocoStudio.h”: No such file or directory (..\Classes\HelloWorldScene.cpp)


本来以为把头文件改成这样

#include "cocos2d/cocos/editor-support/cocostudio/CocoStudio.h"

就成了,没想到上面的解决了(不过这头文件路径这么长有点坑啊),但有出现了一堆类似的问题……

网上搜到的内容是导入libGUI.vcxproj   libGUI.vcxproj   libCocosStudio.vcxproj 这三个包,然后添加新引用,最后为项目添加附加包含目录 ——右键项目→属性→配置属性→C/C++,在右边的附加包含目录中编辑添加

$(EngineRoot)

$(EngineRoot)cocos

$(EngineRoot)cocos\editor-support 

然后就头文件的错误就没了…………我记得之前我已经添加过了,,,,, 


3、默认库“libcmt.lib”与其他库的使用冲突

2>MSVCRT.lib(cinitexe.obj) : warning LNK4098: 默认库“libcmt.lib”与其他库的使用冲突;请使用 /NODEFAULTLIB:library


解决办法:

http://blog.csdn.net/pgmsoul/article/details/4203941/


4、双击.exe文件时无法运行

问题签名:
  问题事件名称: APPCRASH
  应用程序名: plane.exe
  应用程序版本: 1.0.0.1
  应用程序时间戳: 55adbfbf
  故障模块名称: plane.exe
  故障模块版本: 1.0.0.1
  故障模块时间戳: 55adbfbf
  异常代码: c0000005
  异常偏移: 000033d8
  OS 版本: 6.1.7601.2.1.0.256.1
  区域设置 ID: 2052
  其他信息 1: 0a9e
  其他信息 2: 0a9e372d3b4ad19135b953a78882e789
  其他信息 3: 0a9e
  其他信息 4: 0a9e372d3b4ad19135b953a78882e789


联机阅读隐私声明:
  http://go.microsoft.com/fwlink/?linkid=104288&clcid=0x0804


如果无法获取联机隐私声明,请脱机阅读我们的隐私声明:
  D:\Windows\system32\zh-CN\erofflps.txt

---------------------------------------------------------------------------------------------------------------------------------

解决办法:

缺少资源文件,将Resource文件夹下面的文件全部拷贝到与.exe文件同级的目录下.


5、关于“stdafx.h”

如果将头文件做如下声明:

#include <iostream>
#include <fstream>
#include "FileTest.h"
#include "stdafx.h"

则会出现如下错误:

error C2065: “ofstream”: 未声明的标识符

 error C2146: 语法错误: 缺少“;”(在标识符“fout”的前面)

error C2065: “endl”: 未声明的标识符

.........

解决办法:

将头文件“stdafx.h”声明在前面:

#include "stdafx.h"

#include <iostream>
#include <fstream>
#include "FileTest.h"


6、使用cocos2d-x 3.x渲染MFC窗口时,error C2059:syntax error:'contant' .......几十上百个错误....

3>  Compiling...
3>  CocosMFCTestDlg.cpp
3>e:\haoyework\vs2013\cocosmfctest\cocosmfctest\cocos2d\cocos\base\ccutils.h : warning C4819: The file contains a character that cannot be represented in the current code page (936). Save the file in Unicode format to prevent data loss
3>e:\haoyework\vs2013\cocosmfctest\cocosmfctest\cocos2d\cocos\2d\cclabel.h(276): warning C4244: 'return' : conversion from 'float' to 'int', possible loss of data
3>e:\haoyework\vs2013\cocosmfctest\cocosmfctest\cocos2d\cocos\platform\ccapplicationprotocol.h(50): error C2059: syntax error : 'constant'
3>e:\haoyework\vs2013\cocosmfctest\cocosmfctest\cocos2d\cocos\platform\ccapplicationprotocol.h(62): error C2143: syntax error : missing ';' before '}'
3>e:\haoyework\vs2013\cocosmfctest\cocosmfctest\cocos2d\cocos\platform\ccapplicationprotocol.h(62): error C2238: unexpected token(s) preceding ';'
3>e:\haoyework\vs2013\cocosmfctest\cocosmfctest\cocos2d\cocos\platform\ccapplicationprotocol.h(68): error C2588: '::~ApplicationProtocol' : illegal global destructor
3>e:\haoyework\vs2013\cocosmfctest\cocosmfctest\cocos2d\cocos\platform\ccapplicationprotocol.h(68): error C2575: 'ApplicationProtocol' : only member functions and bases can be virtual
3>e:\haoyework\vs2013\cocosmfctest\cocosmfctest\cocos2d\cocos\platform\ccapplicationprotocol.h(68): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
3>e:\haoyework\vs2013\cocosmfctest\cocosmfctest\cocos2d\cocos\platform\ccapplicationprotocol.h(74): warning C4508: 'cocos2d::ApplicationProtocol' : function should return a value; 'void' return type assumed
3>e:\haoyework\vs2013\cocosmfctest\cocosmfctest\cocos2d\cocos\platform\ccapplicationprotocol.h(83): error C2575: 'applicationDidFinishLaunching' : only member functions and bases can be virtual
3>e:\haoyework\vs2013\cocosmfctest\cocosmfctest\cocos2d\cocos\platform\ccapplicationprotocol.h(83): error C2059: syntax error : 'constant'
3>e:\haoyework\vs2013\cocosmfctest\cocosmfctest\cocos2d\cocos\platform\ccapplicationprotocol.h(90): error C2575: 'applicationDidEnterBackground' : only member functions and bases can be virtual

解决办法:

原来是因为CCApplicationProtocol.h文件中的 OS_WINDOWS 和 shlapi.h 中的 OS_WINDOWS 名称冲突了,

CCApplicationProtocol.h文件中加一句#undef OS_WINDOWS 即可




  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值