VC++7 to VC++6 project converterWhat is this ?This tool automatically converts Visual C++ 7.0 projects back to Visual C++ 6.0 projects. In other words, .sln/.vcproj file pairs are translated to .dsw/.dsp file pairs. Important note, there is no loss during the conversion : source code is left unchanged ; only .dsw/.dsp pairs are created (or overwritten). Why ?First of all because MS doesn't provide it. It's easy to become cynical against MS when you feel how bad it is to sell developer tools without all the necessary converters mandatorily used. Without this tool, you end up recreating your projects from scratch : a total waste of time, and prone to errors. Actually there are several scenarios where this tool is useful :
How to use itThe tool is a command line of the form :prjconverter <solutionname (full filepath)>[.sln]For instance, prjconverter c:\tmp\betterxml\betterxml.slnFor info, type prjconverter.exe alone in the console.
What is convertedA few steps to let you know how the work gets done. The .sln solution file is opened and translated to the .dsw file format, along with all project declarations, dependencies, and source control tags. Then all .vcproj project files are translated to .dsp files. I use msxml to parse the .vcproj file format, and build the meta-model out of it. Then what's left to do is serialize all those xml thingies into the standard .dsp symbol lines. Of course we care about project configurations (debug, release, ...), and custom file configuration settings. Technical detailsIn the code provided,slnprocess.cpp does the .sln =>.dsw conversion. vcprojprocess.cpp does the .vcproj
=> .dsp conversion. And vcprojconfiguration.cpp holds the project meta-model (all project setting tabs). In VC++7, the meta-model is now programmable. Let's check out this link. In fact, vcprojconfiguration.cpp reflects exactly this meta-model (as if it was internal MS code).
Update historySept 22 - first build. Stephane Rodriguez - Nov 13, 2002.
|
Home Blog |