vc7工程转换到vc6

简介:
转发一个工具,某些场合挺好用的
一、简介
这个工具自动将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中元模型是可编程的。具体可以查看此链接 [url]http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vcext/html/vcoriVisualCExtensibilityObjectModel.asp[/url] ,事实上vcprojconfiguration.cpp就是展现了这种元模型(meta-model,就像MS的内部代码)

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

本文转自阿汐 51CTO博客,原文链接:http://blog.51cto.com/axiii/116366,如需转载请自行联系原作者

相关文章
|
数据可视化 Python
Seaborn中的色彩与风格:如何调整图表外观
【4月更文挑战第17天】Seaborn是Python的数据可视化库,专注于统计图表。它提供了多种色彩主题和样式设置,帮助用户创建美观的专业图表。可以通过`set_theme`或`set`函数应用预设色彩主题,如深色或明亮主题;也可以自定义色彩映射。样式设置涉及图表线条、背景、网格等,可使用`rc`模块或`set_theme`调整。此外,还能单独调整图例、坐标轴样式,并通过`savefig`保存或`show`展示图表。合理运用这些功能能提升图表的视觉传达效果。
|
C++ Python
【boost】boost1.71安装以及VS2019调用boost.Python
【boost】boost1.71安装以及VS2019调用boost.Python
|
人工智能 缓存 Java
深入解析Spring AI框架:在Java应用中实现智能化交互的关键
【10月更文挑战第12天】Spring AI 是 Spring 框架家族的新成员,旨在满足 Java 应用程序对人工智能集成的需求。它支持自然语言处理、图像识别等多种 AI 技术,并提供与云服务(如 OpenAI、Azure Cognitive Services)及本地模型的无缝集成。通过简单的配置和编码,开发者可轻松实现 AI 功能,同时应对模型切换、数据安全及性能优化等挑战。
981 3
|
人工智能 安全 物联网
《阿里云物联网:连接智能未来的桥梁》
在数字化飞速发展的今天,物联网技术正以前所未有的速度改变着我们的生活和工作方式。阿里云物联网作为行业领军者,凭借其在云计算、大数据和人工智能等领域的深厚积累,为全球用户提供了一站式的物联网解决方案。阿里云物联网不仅拥有强大的云平台支撑和丰富的物联网产品体系,还具备智能化应用开发能力和完善的安全保障体系。从智能家居到智能工业,从智能交通到智能城市,阿里云物联网广泛应用于各个领域,并将持续加大技术创新和产品研发力度,拓展国际市场,与全球合作伙伴共同推动行业的发展。阿里云物联网将继续发挥其技术优势和创新能力,为全球用户提供更加智能、高效、安全的物联网解决方案。
244 1
|
负载均衡 固态存储 Linux
阿里云轻量应用服务器、云服务器、gpu云服务器最新收费标准参考
轻量应用服务器、云服务器、gpu云服务器是阿里云服务器产品中,比较热门的云服务器产品类型,不同类型的云服务器产品收费模式与收费标准是不一样的,本文为大家展示这几个云服务器产品的最新收费标准情况,以供参考。
阿里云轻量应用服务器、云服务器、gpu云服务器最新收费标准参考
|
存储 传感器 算法
Baumer工业相机堡盟工业相机如何通过BGAPISDK的函数转换示Bayer格式为BGR8格式彩色图像(C++)
Baumer工业相机堡盟工业相机如何通过BGAPISDK的函数转换示Bayer格式为BGR8格式彩色图像(C++)
472 0
|
Docker 容器 Linux
私有知识库搭建
私有知识库搭建,纯docker文件
1115 6
|
分布式计算 负载均衡 算法
Flink---5、聚合算子、用户自定义函数、物理分区算子、分流、合流
Flink---5、聚合算子、用户自定义函数、物理分区算子、分流、合流
|
小程序 Java 开发工具
vc6.0_cn_full(完整绿色版+安装步骤)(支持XP、Win7、Win8、Win10)
VC++6.0中文版(完整绿色精简版) 06-30 VC++6.0中文版(完整绿色精简版) 企业版集成SP6,小巧实用,用于编译VC6.0工程很合适 vc6.0_cn_full(完
1622 0
|
数据采集 存储 搜索推荐
Python爬虫实战:如何避免被禁止请求
爬虫是一种自动从互联网上获取数据的程序,它可以用于各种目的,例如搜索引擎、数据分析、网络安全等。然而,爬虫也可能遇到一些困难和挑战,例如被目标网站禁止请求。禁止请求是指网站通过一些技术手段,阻止或限制爬虫访问其内容,例如返回403 Forbidden或503 Service Unavailable等状态码,或者重定向到其他页面,或者要求输入验证码等。禁止请求的情况会影响爬虫的正常运行和数据获取,因此,我们需要了解如何应对和解除禁止请求的情况。
524 0
Python爬虫实战:如何避免被禁止请求