5

問題:構文の強調表示とIntelliSenseが壊れています。私はこのようなC++ソースファイルを持っています:

#include "stdafx.hpp"

#ifdef SOMETHING
do_some_stuff;
#endif

ここでstdafx.hpp(プロジェクトのプリコンパイル済みヘッダー)には、次のような.hファイルが含まれています。

#ifdef DEFINE_SOMETHING
#define SOMETHING
#endif

DEFINE_SOMETHINGプロジェクトのプロジェクトプロパティで定義されます(C ++ /プリプロセッサの下)。

Visual Studioはトラックを失い、do_some_stuff;(実際には多くのコード行である)プレーングレーで表示されます-構文の色付けもIntelliSenseもありません。

質問: Visual Studioでこれを正しく行う(可能性は低い)か、コードがグレー表示されていると思われるという事実をオフにするにはどうすればよい#ifdefですか?

(コードの再配置はオプションではありません-ファイルがさまざまな環境で構築されている大規模で複雑なシステムであり、VisualStudioはそのうちの1つにすぎません。私はVisualStudio 2005を使用していますが、これが修正済みまたは後のバージョンで回避可能。)

4

5 に答える 5

1

#define SOMETHING は stdafx.hpp 内で定義されているため、プロジェクト構成で DEFINE_SOMETHING が定義されているため常に定義されていることを示していますが、プロジェクト構成で SOMETHING を明示的に定義することも問題外でしょうか?

私は VS2005 と 2008 で同様の問題を抱えていましたが、冗長な明示的な定義が役立つことがありました。

于 2013-02-03T22:02:22.683 に答える