65.9K
CodeProject 正在变化。 阅读更多。
Home

重命名工作区 - .dsp 和 .dsw

starIconstarIconstarIcon
emptyStarIcon
starIcon
emptyStarIcon

3.90/5 (7投票s)

2002年11月9日

3分钟阅读

viewsIcon

104092

downloadIcon

823

一个重命名工作区的小技巧(仅适用于MSVC6)。

准备工作

如果您的编程环境是MSVC6,或者您有一些MSVC6工作区项目,并且希望给它一个新的名称,那么本文中的想法和讨论才相关。示例可执行文件已上传 (src 更新待定)

引言

在项目实施周期的某个时刻,我发现在很多情况下,我编写的代码非常适合作为新应用程序的基础框架。通常,当这种情况发生时,我要么启动一个新的CVS分支(不良做法),要么手动将所有现有文件复制到新的目录进行存档。

稍后,当我尝试重用相同的项目文件作为新项目的起点时,问题就出现了。我无法重命名现有的MSVC6项目!乍一看,这似乎是一项简单的任务。但是,问题在于,仅仅重命名项目文件名并不会自动导致MSVC6内部的工作区项目标题发生更改。此外,仅仅更改文件名并不一定意味着生成的执行文件将被命名为不同的名称。

一个小的技巧是,通过修改.dsp文件可以重命名工作区项目标题(如顶部图像所示)。 已经发现,可执行文件名(调试和发布)和所有关联库都包含在项目.dsp中(就像Makefile一样)。因此,在.dsp文件上进行一些搜索和替换,可以快速完成我们想要实现的目标。

当前的实现正是这样做的。一种搜索和替换策略,用于查找现有的工作区项目名称并将其替换为新名称。运行该应用程序后,输出是两个新文件(.dsp.dsw)。

我想再次强调,这种策略使所有包含库保持不变。这非常重要,特别是如果您使用大量的第三方库(我使用directshowopencvipl以及我自己的几个库)。

重命名现有工作区项目标题的困难总结在这个帖子中。建议的解决方案似乎与我自己的发现一致。(在Google上快速搜索将找到数百万个。)

工作原理

基于STL的搜索和替换。CString不具有可移植性。应不惜一切代价避免使用。

如何使用它

假设我在CVS中有一个可靠的项目

  1. 要启动一个单独的项目,请将整个项目目录复制(检出)- (!) 没有CVS残留 - 到另一个位置。
  2. 重命名目录。
  3. 执行renameDsw.exe以生成新的项目名称和可执行文件名。

结束语

根据您的工作性质,这个小实用程序可能会非常方便,特别是如果您需要为各种版本使用不同的编译和链接参数。例如,假设您有针对不同机器架构的LIB文件的多个实现。 基于现有的工作应用程序,您可以生成单独的项目,并将它们添加回当前工作区,如下所示。现在,在同一个工作区下,每个项目都有不同的编译和链接参数。

当前的实现使用一个单独的MFC应用程序来执行搜索和替换任务。当然,也可以使用其他实现方法。例如: Marcos 和 App wizard 等...

最后,我想评论一下为什么我没有考虑生成App wizard 模板的原因。 事实上,许多模板代码非常适合放入App wizard 模板

我没有选择这条路线的主要原因是因为我发现自己有很多模板应用程序,它们编译和执行起来都很可靠。为每个不同的工作项目生成不同的App wizard 模板需要投入更多的时间资源。 我更喜欢简单地从CVS复制并从那里生成一个新名称。

无论如何,我希望这可以帮助像我一样仍在MSVC6上工作的人。

© . All rights reserved.