8

正しいファイルと行番号でエラー リストに表示される Visual C++ で意図的にコンパイラ警告 (#error のモデルで、警告を除く) を作成するにはどうすればよいですか?

GCC およびその他のコンパイラは #warning を提供しますが、MSVC コンパイラは提供しません。

http://support.microsoft.com/kb/155196の「解決策」は、Visual Studio エラー リストで解析されません。

4

2 に答える 2

11

これを共通のインクルード ファイル (例: stdafx.h) に追加するだけです。

#define __STR2__(x) #x
#define __STR1__(x) __STR2__(x)
#define __LOC__ __FILE__ "("__STR1__(__LINE__)") : warning W0000: #pragma VSWARNING: "
#define VSWARNING(x)  message(__LOC__ x)

これを次のように使用します。

#pragma VSWARNING("Is this correct?!?!")

コンパイラは次を出力します。

c:\dir\file.h(11) : warning W0000: #pragma VSWARNING: Is this correct?!?!

また、[エラー リスト] タブには、表に適切に警告が表示されます。

Type       Num   Description                                             File    Line
[Warning]  13    warning W0000: #pragma VSWARNING: Is this correct?!?!   file.h  11

通常の Visual Studio コンパイラの警告とまったく同じです。

于 2010-07-02T03:00:35.110 に答える
1

これはあなたの質問に対するばかげた答えですが、意図的な警告を追加する必要がある場合は、次のように入力します。

#pragma asdfkljasdlfjasklfjklasjdfklj

Unknown Pragma行番号とすべての警告を発行します。

于 2010-07-02T03:48:43.897 に答える