Visual Studio.NET 'C/C++' Gives Active Text the Inactive Text Color Between Preprocessor Directives

I am still having the same problem in VS 2008 that I had in VS 2005.  It was somewhat intermittent in VS 2005, but seems to be a constant problem in VS 2008.

Let's say that "_RDEF3" is a preprocessor directive.  [I assigned "_RDEF3" in the Configuration Properties->C/C++->Preprocess Definitions section of the project properties]

I have code that states:

#ifdef _RDEF3

When Visual Studio detects code between #ifdef's that is inactive, it displays it in gray.  This is a really nice feature -- when it works.

The problem is that the "blah" text above, between the "#ifdef _RDEF3" and "#else" is grayed out and the "blah2" text is not.  However, when I debug the code, the "blah" text gets executed because "_RDEF#" is, in fact, a preprocessor directive.

Very strange.  On the one hand, VS thinks the text is inactive when in the text editor, on the other, it executes it because it thinks it IS active.

If I remove the "_" in "_RDEF3" then put it back, the "blah" text *DOES* become active.  But not for long.  If I press F5 to start executing the Debug version of the code, it immediately goes back to gray.

I thought VS 2008 would have fixed this by now.

Who is Participating?
richelieu7777Connect With a Mentor Author Commented:
Thanks,  but I think I found the fix.  "Selecting "Clean Solution" then "Rebuild Solution" doesn't help at all.  However, when I use a program I wrote a while back to remove all project binary files, it fixed the problem.

I wrote this program when developing under Visual C 6.0 to #1)  reduce folder sizes of project copies I want to keep, #2)  prevent conflicts when debugging a previous project.  Therefore, it would force the compiler to re-create all binary files from scratch rather than relying on any previously existing files.

I didn't realize, however, that a 3rd benefit to this program is that it also fixes this issue in Visual Studio.NET.  I ran it just now and it fixed the problem.

The program deletes all the following files from the project folder:


I'm going to keep this question open just a little bit longer to see if anybody has found a better solution; for example, turning on "such & such" compiler option, or a patch from Microsoft or something.

One workaround for this - not nice, I know - is to use #define directives instead of the project settings. This also exposes the same glitch sometimes, but *most* of the time it's consistent.
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.