9、独立的 ResOrg 应用程序与几乎所有版本的 Visual C++ 的项目兼容 - 不仅包括当前版本的 Visual Studio,还包括旧版本,如 Visual C++ 6.0 和 eMbedded Visual C++ 4.0。
Visual Studio 2010 及更高版本中的资源编辑器包括一个功能区设计器,在重新编号符号时需要考虑该设计器。设计器将功能区控件中使用的符号的详细信息存储在基于 XML 的 .mfcribbon-ms 文件中,由于此信息包括符号值,因此在编辑相应的资源符号文件时,这些文件可能还需要更新。
幸运的是,ResOrg 2.0 可以做到这一点 - 如果与同一 .rc 文件关联的 .mfcribbon-ms 文件中出现的符号的值发生更改,ResOrg 现在将在保存符号文件时自动更新 .mfcribbon-ms 文件的内容
上面以黄色突出显示的符号是一个示例 - 如果在左侧窗格中更改了IDB_BUTTONS的值并保存了文件,则 ribbon.mfcribbon-ms 文件中的相应值将自动更新。在这种情况下,当 ribbon.mfcribbon-ms 文件在 IDE 中打开时,IDE 会提示重新加载该文件。
3、网页报告
在大型项目中,识别问题的能力可能变得至关重要。为此,ResOrg提供了生成HTML报告的工具,这些报告显示了模块中的符号 - 或者只是那些ResOrg已识别出的名称或值有问题的符号
尽管提供的两个报告(完整的符号报告和问题符号报告)应该满足大多数需求,但也可以使用外部 XSLT 样式表来生成自定义报告。Riverblade当然很乐意协助客户满足这方面的特定要求。
4、符号重新编号向导
如果需要批量更改,资源符号重新编号向导将指导您完成对给定资源文件中的所有符号重新编号的过程。
运行时,向导将识别符号的合适范围,并相应地重新编号。此过程可以快速轻松地消除冲突的符号值。
5、从重新编号操作中排除符号
不幸的是,重新编号某些符号可能会导致问题。尽管“符号重新编号向导”允许从重新编号操作中排除单个符号,但从任何文件的自动重新编号中全局排除特定符号(如 IDR_MAINFRAME)会很方便。
6、注意事项
使用 ResOrg 重新编号符号时请谨慎。在某些情况下,这样做可能会导致问题,这是我们最不想发生的事情。
我们注意到的主要问题是:
如果对话框模板包含位图资源,则可视C++资源编辑器会将位图的 ID 存储为文本值,而不是 ID。更改位图 ID 的值将破坏此关联,您必须在对话框编辑器中重新输入 ID,否则将不会显示位图。
应用程序的 Windows 外壳显示的图标是 ID 最低的图标。如果对图标重新编号,则可能不再如此,并且可能会显示错误的图标。
Visual C++ 不会因资源符号更改而自动重新生成实现文件,因为这样做会导致每次添加或更改资源符号时重新生成所有依赖文件(并且可能有很多依赖文件)。
不幸的是,当您重新编号符号时,这正是您想要发生的事情 - 如果您不重建正确的文件,可能会导致各种奇怪的行为!如有疑问,请在尝试重建受影响的项目之前清理它们。
使用帮助
1、检测符号ID和值冲突
ResOrg可以检测两种类型的冲突——符号名称之间的冲突和符号值之间的冲突。在这两者中,前者更为严重,但也是最不常见的。
您将遇到的大多数冲突是由两个不同名称的符号共享相同的值引起的。如果它们是不同类型的,这可能是完全无害的,但如果不是,它可能会在运行时导致一些非常奇怪的行为。
由于符号的名称可能无法准确反映其类型,ResOrg检测资源符号(“resource.h”)文件中的所有此类冲突,并在其显示中识别它们。
如果符号文件中有两个或多个具有相同值的符号,它们将被标识为冲突符号,并在符号显示中显示为红色:
如果已使用相应的解决方案或工作空间打开资源符号文件,则符号文件显示也将显示该文件存在一个或多个冲突:
冲突的符号也明确显示在符号报告中。
一旦识别出冲突,就可以对有问题的符号进行编辑或重新编号,以解决冲突。
2、生成和查看报告
任何时候,都可以从符号显示或符号文件显示生成符号或问题符号报告。
调用报告命令时,将显示“报告”对话框,允许您选择要生成的报告类型。通过在“报告”对话框中指定自定义样式表,可以自定义生成的报告的外观和格式。
样式表被实现为XSL模板文件,适当的样式表可以用于生成任何基于文本的格式(例如HTML、CSV或RTF)的报告。
标准HTML报告模板的副本安装到ResOrg安装文件夹中的“报告模板”文件夹中(默认情况下为C:\Program Files(x86)\Riverblade\ResOrg\report templates)。