1按警告或错误代码编号分类:
C2712:error C2712: Cannot use __try in functions that require object unwinding
handle: Menu->Project->Property --> C/C++->Command Line --> Additional options: /EHs /EHc
2.编译器使用技巧:
2.1 与#pragma相关
2.1.1#pragma warning
作用:处理与编译警告有关的信息
语法:
#pragma warning( warning-specifier : warning-number-list [; warning-specifier : warning-number-list...]
#pragma warning( push[ ,n ] )
#pragma warning( pop )
其中warning-specifier主要有3个:
1)once //某个警告只显示一次
2)disable //禁止制定的警告信息
3)error //将一个指定的警告信息编号作为错误处理
示例:
1)主语法:
#pragma warning(disable:4507 34) // 不显示4507和34号警告信息
#pragma warning(once:4385) // 4385号警告信息仅报告一次
#pragma warning(error:164) // 把164号警告信息作为一个错误。
2)工程应用: //取消某些头文件中的警告信息
#pragma warning(push)
#pragma warning(disable: 4819) // We won't fix code page issue in 3rd party's header file, just ignore it here
#include "Environ.h"
#include "PICommon.h"
#pragma warning(pop)
其中:
#pragma warning( push )保存所有警告信息的现有的警告状态。
#pragma warning( push, n)保存所有警告信息的现有的警告状态,并且把全局警告等级设定为n。
#pragma warning( pop )向栈中弹出最后一个警告信息,在入栈和出栈之间所作的一切改动取消。
#pragma warning( push, n)保存所有警告信息的现有的警告状态,并且把全局警告等级设定为n。
#pragma warning( pop )向栈中弹出最后一个警告信息,在入栈和出栈之间所作的一切改动取消。
2.1.2#pragma message
用法:#pragma message("Some Message You Want")
作用:在程序编译时编译时输出此字符串,对于源代码信息的控制是非常重要。比如:当我们不知道是否使用某个宏时,可在判断此宏后使用此项目,如果输出了表明此宏被使用。
例如:
#ifdef _X86
#pragma message("_X86 macro activated!")
#endif
2.1.3 #pragma once
作用:只要在头文件的最开始加入这条指令就能够保证头文件被编译一次
2.1.4#pragma comment(...)
作用:将注释记录放入当前文件或者可执行文件中
语法:
#pragma comment( "comment-type" [, commentstring] )
示例:(常用)
#pragma comment(lib, "abc.lib") //将abc.lib加入本工程