0
点赞
收藏
分享

微信扫一扫

旧的vs2005或2008工程项目转换成vs2010更高版本时遇到的3个问题


问题一:


错误场景,公司给了我一个vs2008或vs2005的项目文件,我电脑只安装了vs2010,打开转换并编译出现如下错误:

fatal error C1189: #error :  This file requires _WIN32_WINNT to be #defined at least to 0x0403. Value 0x0501 or higher is recommended.



搜寻_WIN32_WINNT找到如下代码:


#ifndef _WIN32_WINNT        // 允许使用 Windows NT 4 或更高版本的特定功能。
#define _WIN32_WINNT 0x0400 // 为 Windows98 和 Windows 2000 及更新版本改变为适当的值。
#endif


更改为如下:

#ifndef _WIN32_WINNT        // 允许使用 Windows NT 4 或更高版本的特定功能。
#define _WIN32_WINNT 0x0500 // 为 Windows98 和 Windows 2000 及更新版本改变为适当的值。
#endif

编译顺利通过! ^-^

问题二:

1>d:\test_c\testrw\filedlg.cpp(118): warning C4996: 'sprintf': This function or variable may be unsafe. 
Consider using sprintf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
1> c:\program files (x86)\microsoft visual studio 10.0\vc\include\stdio.h(371) : 参见“sprintf”的声明
1>d:\test_c\testrw\filedlg.cpp(142): warning C4996: 'fopen': This function or variable may be unsafe.
Consider using fopen_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
1> c:\program files (x86)\microsoft visual studio 10.0\vc\include\stdio.h(234) : 参见“fopen”的声明

_CRT_SECURE_NO_WARNINGS,右键其项目属性>>配置属性>>C/C++>>预处理器>>预处理器定义,



点击其下拉箭头里的[编辑],换行粘贴 _CRT_SECURE_NO_WARNINGS,确定,应用,确定。。。

问题三:


warning C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失


双击进入到有警告的文件,



点击>>【 文件菜单】>>【 高级保存选项】>>编码: Unicode(UTF-8)-代码页 65001 



更改编码格式为【 简体中文(GB2312)- 代码页936】或【 Unicode】,总之是适合自己的编码格式



我这里更改为 Unicode - 代码页 1200



最遗憾的是多个文件要多次进行这样重复的操作,:(



有警告时的文件保存编码:



旧的vs2005或2008工程项目转换成vs2010更高版本时遇到的3个问题__WIN32_WINNT



 我这里更改后的文件编码:



旧的vs2005或2008工程项目转换成vs2010更高版本时遇到的3个问题_#define_02



编译通过,那该死的警告也没有了! ^-^

举报

相关推荐

0 条评论