2014-09-25 91 views
3

我搜索周圍,但沒有發現任何解決方案,所以我在這裏嘗試:拉撒路資源 - 使用的資源會導致錯誤的鏈接

我要整合圖像(我以這種方式與德爾福以前做過),其被我的程序使用並在運行時加載它們。

我的想法是 1)創建一個資源文件,

lazres <resourcename> <imagename> 

2)包括在源

{$R <resourcename>} 

3)資源文件編譯 結果:

Unable to find file "Debug: Trying to open file /medi/media/work/src.hg/ylazlib/test/test.src/libtest6.lpr". 

上面的文件名是項目源,應該找到。 我發現這個錯誤幾乎是來自無效資源文件的結果。 但消息應該以更好的方式解釋問題。

如果我重命名資源文件(所以它不能被鏈接器找到),我得到一個'正確'的錯誤信息。在這種情況下,打開需要資源的單元,並顯示消息指出資源文件無法打開。

那麼我在這裏做錯了什麼? (我也試圖插入不同格式的圖片資源 - 因此圖像本身可能沒有問題) 任何幫助apreciated - 在此先感謝 注:操作系統:Debian的SID [FPC 2.6.4]拉撒路SVN

回答

4

遵循的程序與Delphi中有所不同。由於explained here,您必須

  • LResources添加到使用條款。
  • 包含Lazres在初始化部分生成的res文件。
  • 使用{$I myRes}而不是{$R myRes}

快速測試與

控制檯lzares CMD:

C:\Users\me\Desktop\temp>lazres res.res project1.lpr=blah 

源代碼: 單元1單元;

{$mode objfpc}{$H+} 

interface 

uses 
    Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs,LResources; 

type 
    TForm1 = class(TForm) 
    private 
    { private declarations } 
    public 
    { public declarations } 
    end; 

var 
    Form1: TForm1; 

implementation 
{$R *.lfm} 

initialization 
{$I res.res} 

end. 

編譯並運行良好。然後,如果它們是原始數據,加載res可能有點棘手,但對於圖片來說,它非常簡單,請參閱上一個鏈接中的示例。

+0

LResources已經被添加作爲很好的單位,以項目...... 那麼我發現有一些竊聽我: 我發出 lazres <資源> ,我沒有指定擴展資源名稱 指定目標文件名的擴展名時,會得到完全不同的結果。 感謝您的幫助 - 我想我現在就明白了。 – 2014-09-25 11:53:47