VC2010

初次使用VS2010基于C++开发项目碰到的问题及解决方法

折月煮酒 提交于 2019-12-06 01:44:44
1、将过去的工程用VS2010打开的时候。你有可能会遇到一大堆的警告:warning C4996。 比如:warning C4996: 'sprintf': This function or variable may be unsafe. Consider using sprintf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. 原因是Visual C++ 2005使用了更加安全的run-time library routines。 新的Security CRT functions(就是那些带有“_s”后缀的函数): http://msdn2.microsoft.com/en-us/library/wd3wzwts(VS.80).aspx 那么如何搞定这些警告呢: 原因解释 这种微软的警告,主要因为那些C库的函数,很多函数内部是不进行参数检测的(包括越界类的),微软担心使用这些会造成内存异常,所以就改写了同样功能的函数,改写了的函数进行了参数的检测,使用这些新的函数会更安全和便捷。关于这些改写的函数你不用专门去记忆,因为编译器对于每个函数在给出警告时,都会告诉你相应的安全函数,查看警告信息就可以获知,在使用时也再查看一下MSDN详细了解。库函数改写例子: mkdir改写为 _mkdir fopen

VC2010下Qt5的中文乱码问题

半城伤御伤魂 提交于 2019-12-01 01:38:30
要搞清楚这个问题,先要弄明白编码。但是编码问题实在太复杂,这里肯定讲不开。 我先找一个例子,比如:"中文" 的 Unicode 码点/UTF8编码/GBK 分别是多少。 先去这个网站,输入 "中文" 查询对应的 Unicode 码点/UTF8编码: http://www.mytju.com/classcode/tools/encode_utf8.asp Unicode的码点分别是(十进制):中(20013),文(25991)。 对应的UTF8编码分别(16进制): 中(E4B8AD),文(E69687)。 然后再去下面这个网站,输入 "中文" 查询对应的 GBK 编码: http://www.mytju.com/classcode/tools/encode_gb2312.asp GBK编码16进制(GBK内码)分别是:中(D6D0),文(CEC4)。 现在已经知道了"中文"的UTF8和GBK编码的具体值。 我们再看看VC2010是怎么处理的。 1. 先看 无 BOM 的 UTF8 编码的代码 (utf8_no_bom.cpp) // utf8 no bom // 文件中包含不能在当前代码页(936)中表示的字符 #include <stdio.h> int main() { const char* str = "中文"; for(int i = 0; i < sizeof(str)