2

我正在尝试从相对路径向 Visual Studio 2010 中生成的可执行文件添加一个图标,因为该项目旨在在多台机器上分发和编译,但我无法让它工作。这些是我执行的步骤:

  1. 右键单击资源 -> 添加资源 -> 图标 -> 导入
  2. 然后我导入我的图标,这是我的项目向上的两个目录../../images/icon.ico
  3. 然后我编译并在 exe 上获得图标,但是如果我使用文本编辑器打开自动生成的 .rc 文件,则图标的路径是硬编码的,如果我将项目移动到具有不同文件结构的另一台计算机上,它不会不编译。

有没有办法用相对路径设置图标?或者让 .rc 文件使用相对路径?

4

2 回答 2

4

是的,如果资源位于项目目录或目录的子目录中,资源编辑器只会生成相对路径。您可以自己编辑 .rc 文件。右键单击解决方案资源管理器窗口中的 .rc 文件,打开方式,选择源代码编辑器并编辑 ICON 语句。

当心这样做会引起未来的头痛。这不仅会在另一台机器上出错,迟早也会在您的机器上出错。当您签出不同目录中的项目或该图像文件夹刚刚消失时。资源编辑器生成的绝对路径解决了第一个问题。当然不是第二个。总是倾向于将资源文件复制到您的项目目录,以便您可以轻松地将其签入源代码管理并且不会丢失文件。

于 2013-09-25T13:42:52.297 回答
2

为了避免这个问题,我们的项目共享同一个磁盘分区——一个专用的磁盘分区——然后你可以输入一个绝对路径,但不需要输入驱动器号,例如\path\to\my\icon.ico.

除了在 中工作rc.exe,这也可以在 IDE 中工作。

这些是专用磁盘分区+绝对文件表示法的优点:

  • 根据需要创建尽可能多的分区以分别维护主干、稳定和分支,而不会破坏资源编译器
  • 如果您有很多静态库分布在您的项目分区中,并且需要#include库相关的.rc文件以生成静态链接的.exe,您可以#include <\path\to\your\static\library\resource.rc>编译时指令框中添加。这也适用于rc.exe工具。
于 2014-06-19T17:39:38.490 回答