链接器只能处理res文件,但您可以指示编译器调用资源编译器并编译rc脚本以生成res文件并使用$R/$RESOURCE指令的变体链接该文件。
在您的情况下(Delphi 2007),您只需要更改:
{$r glyphs.res}
到
{$r glyphs.res glyphs.rc}
如果这本身不起作用,请尝试将 RC 添加到项目中。在不同版本的 Delphi 中,您可能需要在文件名周围加上单引号:
{$r 'glyphs.res' 'glyphs.rc'}
注意:您仍然需要识别res文件,不同之处在于能够额外识别要编译的rc文件,以便首先生成所需的res文件。
对此的支持似乎受到了一些修补,并且在最近的版本中,将 RC 添加到项目中似乎并不总是被项目“检测到”,直到您保存、关闭并重新打开项目(例如我发现 XE4 就是这种情况,但也可能适用于其他版本)。
同样在一些较新的版本中,简单地将这样的$R 'file.res' 'file.rc'
声明添加到 DPR 会导致项目经理将引用的 RC 文件识别为项目的一部分,但在旧版本中似乎并非如此。同样,这似乎是该领域修补的一部分。
我还要注意 XE4 在稳定性方面通常坚如磐石,但添加/删除 RC 文件似乎会在关闭 IDE 时触发访问冲突,尽管在重新打开 IDE 和项目时似乎恢复了正常的稳定性。即,添加/删除似乎会导致问题的 RC 文件,而不仅仅是项目中有 RC 文件的事实。
更新:在最新版本的 Delphi(Delphi 10.2 Berlin)中,您应该{$R *.res}
在行前包含自定义资源,否则它们将不会被自动编译。