Solved

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

Posted on 2008-06-18
2
1,323 Views
Last Modified: 2010-08-05
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
      blah
      blah
      blah
#else
      blah2
      blah2
      blah2
#endif

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.

0
Comment
Question by:richelieu7777
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
2 Comments
 
LVL 86

Expert Comment

by:jkr
ID: 21817584
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.
0
 

Accepted Solution

by:
richelieu7777 earned 0 total points
ID: 21821993
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:

     obj
     sbr
     idb
     bsc
     ilk
     pdb
     plg
     pch    
     ncb


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.


0

Featured Post

Industry Leaders: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

C++ Properties One feature missing from standard C++ that you will find in many other Object Oriented Programming languages is something called a Property (http://www.experts-exchange.com/Programming/Languages/CPP/A_3912-Object-Properties-in-C.ht…
Many modern programming languages support the concept of a property -- a class member that combines characteristics of both a data member and a method.  These are sometimes called "smart fields" because you can add logic that is applied automaticall…
The goal of this video is to provide viewers with basic examples to understand opening and reading files in the C programming language.
The viewer will learn additional member functions of the vector class. Specifically, the capacity and swap member functions will be introduced.

726 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question