11

Visual Studio(2012)でWPPを使用する場合、の各出現にTraceEvents(...)は波状の下線があり、ヘルプテキストは次のようになります。

#define TraceEvents WPP_(CALL)
error: identifier WPP_Call_Foo_cppNNN not defined

それは、WPPプリプロセッサによって作成された.tmhヘッダーファイルで定義されており、プロジェクトは問題なくコンパイルされます。ただし、VisualStudioはこのファイルをスキャンおよび/または認識しません。
それらの波線を取り除くための実用的な方法はありますか?

4

3 に答える 3

5

今のところ私は置くことによって問題を回避します

#ifdef __INTELLISENSE__
#undef TraceEvents
#define TraceEvents(a,b,...)
#endif

とにかくすべてのファイルの.tmhの後に含まれているヘッダーファイルの1つ。
定義__INTELLISENSE__http://blogs.msdn.com/b/vcblog/archive/2011/03/29/10146895.aspxに記載されています

于 2014-04-11T13:07:24.367 に答える
4

Visual Studio 2012用に編集:

VisualStudio2012のIntelliSenseエンジンのプリプロセッサの分析制限に達したようです。TraceEvents参照をに置き換えるとWPP_Call_Foo_cppNNN、実際には問題なく識別子が解決されます(ソリューションを再構築してtmhヘッダーが変更されるまで)。

解決策は、Visual Studio 2013にソリューションをロードし、コンパイラツールチェーンをアップグレードしないことを選択することです。これにより、VisualStudio2012との下位互換性が維持されます。


Visual Studio 2013の以前の回答:

これはVisualStudio2013でテストされたため、Visual Studio2012には適用されない可能性があります。VisualStudio2012をサポートするWDKのリリースが見つからなかったため、環境を構成する方法を教えてください。次の手順は機能しません。

プロジェクトをビルドした後(.tmhファイルが存在することを確認するため)、[プロジェクト]→[ソリューションの再スキャン]コマンドを実行します。

また、次の手順でファイルをC++エディターに関連付けることをお勧めします。

  1. [ツール]→[オプション...]→[テキストエディタ]→[ファイル拡張子]を開きます
  2. 拡張機能tmhをエディターMicrosoftVisualC++に関連付けます
于 2014-04-11T02:07:49.117 に答える
3

スイッチをオフにLive Semantic ErrorsOptions->Text Editor->C/C++ -> Advancedます...

于 2013-02-26T14:55:27.210 に答える