E2161错误:RLINK32:要处理的资源太多。德尔福错误

时间:2009-09-18 08:56:03

标签: delphi

当我尝试链接dll中的资源时,我收到以下错误。

[DCC错误] E2161错误:RLINK32:要处理的资源太多。

资源数量超过10K。

我不确定,如果dll中的资源名称大小有限制。 https://forums.codegear.com/message.jspa?messageID=58473

有没有办法为dll添加更多资源。

-Pavan。

5 个答案:

答案 0 :(得分:4)

作为一种解决方法,您可以在一个映像中将相关图像合并在一起,然后在运行时切出所需的部分。例如,这就是Windows图像列表控件的工作方式。

答案 1 :(得分:1)

将资源拆分为不同的DLL或选择一些容器来存储文件(例如一些嵌入式数据库,如SQL Lite,Eldos SoLFS存储,AidAim单文件系统存储或您自己的实现),这些文件可以在最后附加如果可能,可执行文件(因为您使用Delphi 2009,您可以使用Post-Build命令执行此操作)。如果您选择第二种方式,您的程序将使用更少的内存,因为资源部分将更小,也取决于实现,您还可以使用加密保护图像甚至压缩它们。只有减去的是你必须创建自定义加载程序才能将png数据加载到对象中(不要太难)。

答案 2 :(得分:1)

PngComponents有一个组件TPngImageCollection。也许这会为你做。

答案 3 :(得分:0)

我自己没有遇到过这个错误,但如果我这样做,我认为我会尝试的第一件事就是将资源分成单独的RES文件。

可能“太多”一次过多,并且将资源分配到多个res文件可能会将内容分解为更易于管理的块,以供RLINK32处理。

但这只是我的猜测。

答案 4 :(得分:0)

从无代码更改到更多修改:
 1.尝试缩短资源名称  2.将您的dll分成多个资源较少的资源(通过自然或主题组织它们的好方法)
 3.将您的图像资源组合成多图像条(适用于图标,字形等......当尺寸相同时)