Prev: Does Visual Studio 2008 synchronize printf
Next: Mailing follow-ups (was: Re: VC++ 6.0 vs VC++ 8.0)
From: Richard on 1 Apr 2010 01:47 [Please do not mail me a copy of your followup] "Liviu" <lab2k1(a)gmail.c0m> spake the secret code <u1$8rlV0KHA.6068(a)TK2MSFTNGP04.phx.gbl> thusly: >Curiosity, of course ;-) Well, sometimes more serious reasons, too. >An example at random, in the v7.1 IDE there was one setting for >"floating point consistency" with two choices. In the v8 IDE there >were two related options with more choices under a different tab. >Now suppose you had to convert an older project from v7.1 to v8, >had only v8 installed, wondered what the old options were before, >and how the "conversion wizard" magically mapped them. The old >vcproj alone doesn't tell you that. A makefile makes it obvious. OK, this is an example of the curiosity case. What about the serious reason case? I'm not trying to pick nits, I'm trying to understand why you would need that. I've converted plenty of projects between different versions of Visual Studio and never needed to know this. If you just want to satisfy your curiosity, then you can figure it out by looking at the command line section which shows the full command-line and you can observe the differences in the vcproj and the command-line as you change the GUI choices. Yes, the mapping of vcproj settings to compiler switches is undocumented insofar as the file format of a vcproj file is purposely opaque. If you need to manipulate the settings, you are expected to use the IDE (manual manipulation) or the automation API (programmatic manipulation), not edit the text of the vcproj file. -- "The Direct3D Graphics Pipeline" -- DirectX 9 draft available for download <http://legalizeadulthood.wordpress.com/the-direct3d-graphics-pipeline/> Legalize Adulthood! <http://legalizeadulthood.wordpress.com>
From: Liviu on 1 Apr 2010 02:43 "Richard" <legalize+jeeves(a)mail.xmission.com> wrote... > "Liviu" <lab2k1(a)gmail.c0m> spake the secret code ... thusly: > >> Curiosity, of course ;-) Well, sometimes more serious reasons, too. >> An example at random, in the v7.1 IDE there was one setting for >> "floating point consistency" with two choices. In the v8 IDE there >> were two related options with more choices under a different tab. >> Now suppose you had to convert an older project from v7.1 to v8, >> had only v8 installed, wondered what the old options were before, >> and how the "conversion wizard" magically mapped them. The old >> vcproj alone doesn't tell you that. A makefile makes it obvious. > > OK, this is an example of the curiosity case. > What about the serious reason case? That was actually an example of the "more serious" part. > I'm not trying to pick nits, I'm trying to understand why you would > need that. I've converted plenty of projects between different > versions of Visual Studio and never needed to know this. If you generally go by the builtin/wizard defaults, then you'll be safe, since I guess that's one primary concern for MS when deciding and testing the project conversion options. > If you just want to satisfy your curiosity, then you can figure it out > by looking at the command line section which shows the full > command-line and you can observe the differences in the vcproj and the > command-line as you change the GUI choices. This, again, is assuming that you have the full environment installed for that version, so that you can inspect the vcproj in the IDE (or rebuild, and look at the build log). > Yes, the mapping of vcproj settings to compiler switches is > undocumented insofar as the file format of a vcproj file is purposely > opaque. If you need to manipulate the settings, you are expected to > use the IDE (manual manipulation) or the automation API (programmatic > manipulation), not edit the text of the vcproj file. That is a _new_ expectation introduced post v6, which is exactly the point I was making in the original post. I also find it somewhat ironic that VC's own CRT/ATL/MFC sources still come with makefiles, not vcproj's. Liviu
From: Pavel A. on 1 Apr 2010 08:00 "Richard" <legalize+jeeves(a)mail.xmission.com> wrote in message news:e0D9zhU0KHA.3676(a)TK2MSFTNGP05.phx.gbl... > "Pavel A." <pavel_a(a)12fastmail34.fm> spake the secret code > <2A0B6242-4412-445D-A1F1-64CBB1251318(a)microsoft.com> thusly: > >>You may find this article useful: >>http://msdn.microsoft.com/en-us/library/cc265073.aspx > > That link seems to show the content without context. Just for the > benefit of others, this is an excerpt from I.M. Wright's book > "Hard Code". [............] Pardon me... they change the MSDN layout all the time; it was in context when I've bookmarked it. Here is a link to the original blog of "I.M.Wrigth" (pseudonym of Eric Brechner) http://blogs.msdn.com/eric_brechner/about.aspx Great advice - wish I found it many o'moons earlier! Regards, -- pa
From: Tim Roberts on 2 Apr 2010 01:25 legalize+jeeves(a)mail.xmission.com (Richard) wrote: > >>Yes, of course, but that's irrelevant to the point I was making. The >>vcproj file does _not_ contain (officially published) information about >>how the settings translate to the (well documented) compiler/linker >>switches. > >And yet I feel this is a worthless point to make because it just >doesn't come up in practice. In the decade or more that I've been >using Visual Studio and automating builds with it, I've *never* needed >to know this and I push beyond the boundaries of what the average >developer does with Visual Studio, in my experience. I would have to disagree also. Have you every tried to make bulk changes to a set of vcproj files? I don't want to wear my fingers out by clicking over and over and over and over and over to change common settings to, for example, make run-time library settings consistent, or change an include file path, etc. **MANY** are the times I've edited the vcproj files by hand. I, too, am very annoyed that there is no reference to the settings. The situation has become slightly better now that there are .NET pages that describe the C# enumerations by name, but they still don't present the numeric values. -- Tim Roberts, timr(a)probo.com Providenza & Boekelheide, Inc.
From: Pavel A. on 2 Apr 2010 04:15
"Tim Roberts" <timr(a)probo.com> wrote in message news:9pvar5dg0pnl3rprsecnutb80v4jrk8gkl(a)4ax.com... ........................ > Have you every tried to make bulk changes > to a set of vcproj files? I don't want to wear my fingers out by clicking > over and over and over and over and over to change common settings to, for > example, make run-time library settings consistent, or change an include > file path, etc. Why making a bulk change to several vcproj's is harder than changing several makefiles? They are plain text. Find & replace, or write a script.... And, have you tried property sheets? In a property sheet you can define environment variables for external tools, extra includes, libs and makefile commands. Regards, -- pa |