3

私のプロジェクトにはたくさんの#ifdefs. これら#ifdefの で使用されるマクロは、通常、'/D'オプションを使用してコマンド ラインを介して渡され、さまざまなビルド構成を取得します。Visual Studio は、これらのマクロが定義されていないと誤って想定し、これら#ifdefの 内に存在するコード ブロックをグレー表示します。問題は構文の強調表示ではありません。グレー表示されたコードをオプションから色付きのコードに変えることができます。主な問題は、その中に存在する関数の関数定義に移動できないことです#ifdef。Visual Studioのヒント ファイルについて読んでみましたが、うまくいきませんでした。

誰でもこの問題で私を助けることができますか? Visual Studio 2008 を使用しています。

4

2 に答える 2

2

VS 内でデバッグ、リリースなどの構成としていくつかの種類のビルドを定義しましたか、それともメイクファイルを使用してビルドしていますか? /D オプションについて VS に教えていない場合は、役に立たないと思います。しかし、プロジェクト プロパティ (構成プロパティ、C/C++、プリプロセッサ) の下でプリプロセッサ定義をセットアップして、必要な効果を得ることができるはずですよね?

/DMACRO=XXXコンパイラに渡すオプションごとMACRO=XXXに、IntelliSense プリプロセッサ定義で指定します。/DMACROコンパイラに渡すオプション (値なし) ごとMACROに、IntelliSense プリプロセッサ定義で指定します。

于 2010-10-28T18:40:00.467 に答える
0

デバッグを行っておらず、インテリセンスなどを反応させようとしているだけの場合は#define、IDE を強制的に動作させるために、いつでもクイックを投げることができます。

あなたはこの仲間と同様の問題を抱えているようです:

#ifndef ... #endif のようなプリプロセッサ ディレクティブ ブロック内で VS2008 でインテリセンスを有効にできますか

于 2010-10-28T18:20:15.147 に答える