VC7到VC6工程的转换工具

本工具可自动将VC7工程转换回VC6工程,实现.sln/.vcproj到.dsw/.dsp文件的转换,不修改源代码。适用于需要在VC6环境下使用VC7工程的情形。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

先来个图:

 

一、简介
这个工具自动将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文件,...),虽然我希望知道是否有可以改进的地方,但我必须清楚地申明如果你的工程被该工具破坏并不是我的错。

下载工程转换工具    下载源代码

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值