您的位置:首页 > 其它

VC7到VC6工程的转换工具(ZT)

2007-05-09 11:51 274 查看
原著:Stephane Rodriguez

翻译:POWERCPP下载工程转换工具
下载源代码




一、简介

这个工具自动将VC7工程转换回VC6工程,换言之,就是将.sln/.vcproj这两个文件转换到.dsw/.dsp文件。
注意:本转换器在转换期间只是建立(或覆盖).dsw/.dsp文件,并没有改变任何源代码。

二、由来
首先当然是MS并没有提供这样的工具,MS在出售开发工具时并没有提供工程回退的转换功能使你感到很伤脑筋,甚至开始憎恨MS。
没有这样的工具,虽然你可以通过重建工程来凑合,但浪费时间并容易带来错误。事实上,在如下情形时这个工具是很有用的:

有人给你VC7工程,但你只安装了VC6

你将工程从VC6升级到VC7,在你的目录下同时存在.dsw/.dsp和.sln/.vcproj文件,并且你希望保持这几个文件的同步,使你在不需要使用两个版本VC++的情况下任何时候都可以打开这个工程开始工作。

提供两个版本的工程(例如你在CodeProject中共享你的代码时),而不用担心读者使用的是哪个版本的开发工具。

三、如何使用
命令行形式:
prjconverter <solutionname (full filepath)>[.sln]

例如:
prjconverter c:/tmp/betterxml/betterxml.sln

可以在命令行键入prjconverter.exe获取更多信息

四、转换了什么
简单的几步就可以清楚这是如何工作的,打开.sln解决方案文件并转换到.dsw文件格式,包括所有的工程定义,依存信息和源代码控制标记。

然后,所有.vcproj工程文件转换为.dsp文件,我使用MSXML来解析.vcproj文件格式,另外创建元模型( meta-model),然后将所有XML内容转换到标准的.dsp符号行。

当然,我们要小心处理项目中的配置(debug,release,...),还有自定义的配置。

五、技术细节
代码中slnprocess.cpp完成从.sln到.dsw的转换。vcprojprocess.cpp完成从.vcproj到.dsp的转换。
vcprojconfiguration.cpp包含了所有工程元模型(meta-model)(即所有工程设置选项)。在VC7中元模型是可编程的。具体可以查看此链接http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vcext/html/vcoriVisualCExtensibilityObjectModel.asp ,事实上vcprojconfiguration.cpp就是展现了这种元模型(meta-model,就像MS的内部代码)

六、申明
这个工具在发布之前已经经过广泛的测试(MFC/COM/ATL/控制台程序,make文件,...),虽然我希望知道是否有可以改进的地方,但我必须清楚地申明如果你的工程被该工具破坏并不是我的错

七、与VC.net的集成

这个工具可以在命今行下工作,按以上步骤操作就可以了。当然,为了方便,我们也可以把这个工具集成到vc.net的菜单中,
免得每次都要打开命令行。方法如下:
a、把prjconverter.exe拷贝到“C:/Program Files/Microsoft Visual Studio .NET 2003/Common7/Tools”目录下。
b、打开vc.net的“工具”-->“外部工具...”,在弹出的窗口中点击“添加”。
c、添加一个外部工具,参数按下图填写:
标题:prjconverter
命令:C:/Program Files/Microsoft Visual Studio .NET 2003/Common7/Tools/prjconverter.exe
参数:$(SolutionFileName)
目录:$(ItemDir)

选择(使用输出窗口)

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: