C4996:
出现这样的警告,是因为VC2005之后的版本中认为CRT中的一组函数如果使用不当,可能会产生诸如记忆体泄露,缓冲区溢位,非法访问等安全问题。这些函数如:strcpy,strcat等。
解决方法:
1. #pragma warning(disable:4996)或 #define _CRT_SECURE_NO_WARNINGS 忽略掉这个错误
2.修改VS配置,告诉它我就要旧函数,修改方法:项目->属性->C/C++->常规->SDL检查,将“是”改为“否”,即可
3. 按照错误提示替换 (如果跨平台就不要用这个方法了)
4.在项目-》属性-》C/C++-》预处理器-》预处理器定义 添加宏定义:_CRT_SECURE_NO_WARNINGS (类似于1里的#define,不过这个添加之后整个项目都可以忽略这个错误)
C3646:
未知重新说明符
1.两个头文件互相引用导致
2.中文;符合
3.类定义顺序
解决方法:
在报错的那个.h文件的类定义前加上class声明调用的类(即class 类)
解决中文符合
调整类定义顺序
C2504:
未定义基类
头文件循环包含导致
比如 :a.h b.h c.h
a.h 包含b.h
b.h 包含c.h
c.h 包含a.h
编译a.h 以为包含b.h 引入b.h b.h包含c.h 引入c.h c.h包含a.h a.h 又没有编译完 就会报错
解决方法:
找到循环包含的关系,修改掉