當我嘗試鏈接DLL中的資源時,出現以下錯誤。E2161錯誤:RLINK32:要處理的資源太多。德爾福錯誤
[DCC錯誤] E2161錯誤:RLINK32:要處理的資源太多。
資源數量大於10K。
我不確定,如果有一個DLL中的資源名稱的大小有任何限制。 https://forums.codegear.com/message.jspa?messageID=58473
有什麼辦法可以向dll添加更多資源。
-Pavan。
當我嘗試鏈接DLL中的資源時,出現以下錯誤。E2161錯誤:RLINK32:要處理的資源太多。德爾福錯誤
[DCC錯誤] E2161錯誤:RLINK32:要處理的資源太多。
資源數量大於10K。
我不確定,如果有一個DLL中的資源名稱的大小有任何限制。 https://forums.codegear.com/message.jspa?messageID=58473
有什麼辦法可以向dll添加更多資源。
-Pavan。
作爲一種解決方法,您可以在單個圖像中將相關圖像合併在一起,然後在運行時切出所需的部分。例如,這就是Windows圖像列表控件的工作方式。
我同意羅布,如果你必須讓他們作爲資源。 – skamradt 2009-09-18 15:58:35
我自己沒有遇到這個錯誤,但是如果我這樣做了,我想我會嘗試的第一件事就是將我的資源分割成單獨的RES文件。
這可能是因爲「太多」太多了,並且跨多個res文件分割資源可能會把事情分解成RLINK32需要處理的更易於管理的塊。
但是這只是我的猜測而已。
我曾試過這個。分割成多個RES文件不起作用。 – Pavan 2009-09-18 10:00:46
將資源拆分成不同的DLL或選擇一些容器來存儲文件(例如一些嵌入式數據庫,如SQL Lite,Eldos SoLFS存儲,AidAim單一文件系統存儲或您自己的實現),可以在末尾附加可執行文件(如果可能的話)(因爲您使用Delphi 2009,您可以使用Post-Build命令來執行此操作)。如果你選擇第二種方式,你的程序將使用更少的內存,因爲資源部分會更小,同樣也取決於實現,你也可以使用加密來保護圖像,甚至壓縮它們。只有減號是你將不得不創建自定義加載過程來加載png數據到你的對象中(不是太難)。
從沒有代碼更改到更多的修改:
1.儘量縮短你的資源的名稱
2.分割你的DLL到多個的較小的編號資源(自然或主題來組織他們的好方法)
3.將您的圖像資源,爲多圖像條(行之有效的圖標,字形,等等......當大小是一樣的)
的PngComponents有分量TPngImageCollection。也許這會爲你做。
什麼版本的Delphi?什麼樣的資源? – zendar 2009-09-18 09:10:00
Delphi 2009和PNG圖像 – Pavan 2009-09-18 09:10:37
他們有什麼必要成爲資源的原因嗎?或者它們可能位於外部文件中並在運行時加載? – skamradt 2009-09-18 16:01:57