VS2005 - Project settings for multiple configurations

I'm porting my multi-project application workspace from VS 6.0 to 2005 solution.

One of the problems is that when I want to add an additional "preprocessor definition" constant, I need to do it for each configuration of each project separately. Otherwise, all existing values are cleared.

Previously, in VS 6, when selecting several configurations (Debug & Release together), the edit box contained the common definitions between the platforms. Adding a new constant defined it in both configuration.

VS2005 displays the empty list. Any entered value is indeed added to both configurations, but the previous values are lost.

Is there a way to define the same constant for multiple configurations/projects in VS2005

Thank you,
Mike

P.S. The variable I want to add is _CRT_SECURE_NO_DEPRECATE. I want to get my code compiled without changing the source from start.



Answer this question

VS2005 - Project settings for multiple configurations

  • Perry G.

     mikets wrote:
    I want to add is _CRT_SECURE_NO_DEPRECATE.

    I want to do exactly the same thing.  The reference given above describes how to set the preprocessor defines for a project.  There are 155 projects in my solution, and I sure don't want to make 155 project changes.

    >> Hang on. Ayman's property sheet reference is just what I needed.
    I didn't understand the "inherited" bit before.
    Since my project was an upgrade from 7.1, I just modified the existing inherited property sheet "Upgrade From VC 7.1" to add the defines, and all projects now inherit them.    Very nice.

    I found this to be a useful starting point for the full picture.

    http://msdn2.microsoft.com/en-us/library/a4xbdz1e(en-us,VS.80).aspx

    And some gotcha's ....

    http://msdn2.microsoft.com/en-us/library/3z7t21ew.aspx

    -------------------------------- Update -------------------
    The _CRT_SECURE* macro definitions do not work.  It would be convenient if the  _CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES function worked to render all of the code quickly into safe string handling.  A quick peek at the vs2005 include files suggest this function might be embedded in another set of defines that I don't recognize.

    The references above suggest you could use these macros, or just turn off the warnings.  Searching MSDN for how to do that leads you to "Code Analysis" in the property sheet, which has radio buttons for individual warnings.

    http://msdn2.microsoft.com/en-us/library(d=printer)/8ef0s5kh.aspx

    Code Analysis is not the place to reset the deprecated warning.  The only thing that worked for me is to navigate to the "Upgrade From VC 7.1 Property Page" (the inherited one), then

    C++ / Advanced/ Disable Specific Warnings.

    What is needed here is just the number 4996, not C4996.

    And I had to remove the Preprocessor Definitions, because the command line settings trigger other warnings from the vs2005 include files.

     


  • Petr Bouda

    Try using Property sheets (http://msdn2.microsoft.com/en-us/library/5k4a0033.aspx).

    Hope this helps!

    Thanks,
    Ayman Shoukry
    VC++ Team


  • VS2005 - Project settings for multiple configurations