一、提示C系列错位
1. error C1010:在查找预编译头时遇到意外的文件结尾。是否忘记了向源中添加“#include “stdafx.h””?
解决方法: 上述问题定位在MemDB.c,在解决方案管理器中查找"MemDB.c",然后右键属性->常规->C/C++->预编译头->“预编译头”选择“不使用预编译头”
2. error C2664:不能讲参数1从“CString”转化为“const char*”
**问题原因:**从VC6.0移植到VS2010一般会出现这个问题,就是说VS对字符集的要求更严格
解决方法::进入项目-> 属性->配置属性->常规->“项目默认值”中的“字符集”选择“使用多字节字符集”
二、提示D系列错误
1. error D8016:“/ZI”和“/Gy-”命令行选项不兼容”问题
解决方法: 进入项目-> 属性->C/C++->常规->调试信息格式->选择程序数据库(/Zi)
三、提示H系列错误
1. *.hpj HC5011:Error Cannot open the file “E:\VC++6.0\VC98\MFC\include\afxhelp.hm”
**问题原因:**代码拷贝到其他电脑会出现这种问题,因为是help文件的路径不对
解决方法:
- 首先找到项目代码中的*.hpj 文件(如果直接找不到可以下一个Everything)
- 双击进入,找到[MAP] (一般在最下边)。双击修改对应的连接
将其修改为本机电脑安装VC6.0的路径下的.hm文件,如我的是:
四、提示M系列错误
1. error MSB4018: "VCMessage"任务意外失败
问题原因: 双击错误可以定位到一行代码中,说输出与链接的文件名不一样。打开工程配置检查一下,果然,后者应该改成 $(OutDir)SysData.exe
五、提示L系列错误
1. error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏
解决方法: 把“D:\VS2010\VC\bin\cvtres.exe”删除即可。路径是VS2010的安装路径。
2. error LNK2001:无法解析的外部符号
**问题原因:**导致出现2001问题的愿意有很多,解决方法也不一样。这里只解决Debug版可以通过而Release不能通过的问题。
解决方法: 进入项目-> 属性->链接器->系统->“子系统”将“/subsystem:console”改成“/subsystem:windows” .
3. error LNK2005:@已经在@.obj中定义
问题原因:(1)没有预编译头头文件(2)头文件重复包含
解决方法:(1)进入项目-> 属性->c/c++->“预编译头”选择“创建/使用编译头”(2)在头文件里加入防止重复包含的宏
4. error LNK2019:无法解析的外部符号 __imp__printf,该符号在函数 @(@) 中被引用
解决方法: 进入项目-> 属性->链接器->输入->在 “附加依赖项"中加入"legacy_stdio_definitions.lib” .
5. error LNK2026:模块对于SAFESH映像是不安全的
解决方法: 进入项目-> 属性->链接器->高级->将*“映像具有高级异常处理程序"改成"否”*
六、提示Warning警告
1. warning C4098: 默认库“LIBCMT”与其他库的使用冲突;请使用 /NODEFAULTLIB:library
解决方法: 进入项目-> 属性->链接器->输入->*“忽略特定库”填入"LIBCMT"
2. warning C4189: 默认库“msvcrt.lib”与其他库的使用冲突;请使用 /NODEFAULTLIB
解决方法: 进入项目-> 属性->链接器->输入->*“忽略特定库”填入"msvcrt.lib"