无法链接图标资源

3
我尝试在我的Delphi 5项目中添加一个图标并进行编译/链接,但是出现以下错误:
"[Error] RLINK32: Out of memory!"
问题在哪里?
图标位于http://www.shuling.net/temp/Project2.zip
1个回答

3
您的图标包括在Vista时期引入的大型样式256像素图标。Delphi 5工具无法将它们链接到项目中。据我回忆,Delphi 5的brcc32无法处理这些图标,因为256像素图标在.ico文件中的大小表示为0。它们还使用PNG压缩存储以使尺寸得以控制。Delphi 5的brcc32对此一无所知,因此无法处理。

当我将这种图标链接到旧版Delphi 6项目时,我使用了微软资源编译器rc.exe来编译资源。Delphi 6的链接器可以将已编译的.res文件链接起来。

我不确定Delphi 5的链接器是否能够做到这一点。如果不能,那么您需要进行后期构建操作以将资源链接到文件中。但是,如果我记得正确的话,我只需要使用rc.exe.rc文件编译为.res文件,然后让Delphi将其链接即可。

因此,简要概括一下,您需要:

  1. 使用现代资源编译器(例如rc.exe)编译.rc文件。
  2. 如果Delphi 5能够这样做,则通常方式链接结果为.res文件。如果无法,请使用单独的后期构建工具将.res文件链接起来。

非常感谢。在.rc文件中,我应该使用哪个资源ID来表示图标,因为这个图标是应用程序的主要图标。 - alancc
你必须称其为MAINICON,因为这是VCL使用的名称。 - David Heffernan
谢谢。我尝试了但是收到一个警告,说“重复资源”。如何删除项目中的原始图标并使用外部.res文件中的图标? - alancc
另一个可能在projname.res中。在.dpr文件中与$R *.res链接。移除它。 - David Heffernan

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接