加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

Cocos2d-x error note

发布时间:2020-12-14 14:16:26 所属栏目:百科 来源:网络整理
导读:之前学cocos2d-x时遇到很多问题,每次都要到网上搜罗半天才解决,但下次再遇到类似问题时又忘记是怎么回事了。所以我决定把自己遇到的问题记录下来, 1、cocos2d::xxx被声明为否决 e:haoyeworkvs2012planecocos2dcocos2dplatformwin32CCFileUtilsWi

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

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

>e:haoyeworkvs2012planecocos2dcocos2dplatformwin32CCFileUtilsWin32.h(102): warning C4996: 'cocos2d::FileUtils::getFileData': 被声明为已否决 (platformwin32CCFileUtilsWin32.cpp)

1> E:HaoyeWorkVS2012planecocos2dcocos2dplatform/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:haoyeworkvs2012planeclassesHelloWorldScene.h(5): fatal error C1083: 无法打开包括文件:“cocostudio/CocoStudio.h”: No such file or directory (..ClassesAppDelegate.cpp)
2>e:haoyeworkvs2012planeclassesHelloWorldScene.h(5): fatal error C1083: 无法打开包括文件:“cocostudio/CocoStudio.h”: No such file or directory (..ClassesHelloWorldScene.cpp)


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

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

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

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

$(EngineRoot)

$(EngineRoot)cocos

$(EngineRoot)cocoseditor-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:Windowssystem32zh-CNerofflps.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:haoyeworkvs2013cocosmfctestcocosmfctestcocos2dcocosbaseccutils.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:haoyeworkvs2013cocosmfctestcocosmfctestcocos2dcocos2dcclabel.h(276): warning C4244: 'return' : conversion from 'float' to 'int',possible loss of data
3>e:haoyeworkvs2013cocosmfctestcocosmfctestcocos2dcocosplatformccapplicationprotocol.h(50): error C2059: syntax error : 'constant'
3>e:haoyeworkvs2013cocosmfctestcocosmfctestcocos2dcocosplatformccapplicationprotocol.h(62): error C2143: syntax error : missing ';' before '}'
3>e:haoyeworkvs2013cocosmfctestcocosmfctestcocos2dcocosplatformccapplicationprotocol.h(62): error C2238: unexpected token(s) preceding ';'
3>e:haoyeworkvs2013cocosmfctestcocosmfctestcocos2dcocosplatformccapplicationprotocol.h(68): error C2588: '::~ApplicationProtocol' : illegal global destructor
3>e:haoyeworkvs2013cocosmfctestcocosmfctestcocos2dcocosplatformccapplicationprotocol.h(68): error C2575: 'ApplicationProtocol' : only member functions and bases can be virtual
3>e:haoyeworkvs2013cocosmfctestcocosmfctestcocos2dcocosplatformccapplicationprotocol.h(68): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
3>e:haoyeworkvs2013cocosmfctestcocosmfctestcocos2dcocosplatformccapplicationprotocol.h(74): warning C4508: 'cocos2d::ApplicationProtocol' : function should return a value; 'void' return type assumed
3>e:haoyeworkvs2013cocosmfctestcocosmfctestcocos2dcocosplatformccapplicationprotocol.h(83): error C2575: 'applicationDidFinishLaunching' : only member functions and bases can be virtual
3>e:haoyeworkvs2013cocosmfctestcocosmfctestcocos2dcocosplatformccapplicationprotocol.h(83): error C2059: syntax error : 'constant'
3>e:haoyeworkvs2013cocosmfctestcocosmfctestcocos2dcocosplatformccapplicationprotocol.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 即可

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读