2012-01-21 17 views
0

我試圖在我的一個軟件包中使用EXIF庫。它的工作之前,但現在我得到莫名其妙的信息:單位GIFImg編譯了不同版本的CCR.Exif.Consts.SOutOfResources

[DCC致命錯誤] F2051單位GIFImg用不同 版本CCR.Exif.Consts.SOutOfResources編譯

我真的不得到它...爲什麼德爾福試圖重新編譯它的一個文件?我該如何解決?

GifImg位於:

C:\ Program Files文件\ Embarcadero公司\ RAD Studio在\ 8.0 \源\ VCL \ GIFImg.pas

更新:

我看着該文件的日期(1個PAS和2個DCU),並且與RAD Studio \ 8.0 \ source \ vcl文件夾中的其他文件具有相同的日期。所以,這個文件並沒有被意外修改。

UPDATE2:

這是我的uses子句:

USES Windows, SysUtils, AnsiStrings, Graphics, Dialogs, Classes, jPeg, 
    pngImage,      
    janFX, //CCR.Exif, 
    {$IFDEF VER150} 
     GIFImageFinn  {Delphi 7} 
    {$ELSE} 
     GIFImg   {Delphi 2010/XE} 
    {$ENDIF} 
    ; 

如果我評論的CCR.EXIF單元,它開始編譯我的包。所以,添加EXIF到我的包中會破壞一些東西。

回答

0

已解決:

我刪除了文件名中的點。 CCRExif而不是CCR.Exif。

這是一個討厭的問題。

+0

那種感覺像一個編譯器bug給我 –

1

你報告的內容並不完全相加。作爲Delphi源代碼的一部分的GIFImg單元不參考CCR.Exif.Consts.SOutOfResources。並且GIFImg使用的單位也沒有提及它。

所以這似乎是可信給我的解釋是:

  1. 你包括在您的項目稱爲GIFImg某處單元。
  2. 你已經發現了一個編譯器錯誤。

錯誤消息F2051通常發出的,根據我的經驗,當你嘗試重新編譯的RTL/VCL單元,但未按規定設置項目選項以匹配由真正的RTL/VCL使用。或者,當您重新編譯在接口部分有修改的RTL/VCL單元時,它將被髮射。

+0

「你報告的內容不完全相加」 - 我知道。這就是爲什麼我想分開EXIF單元/包裝的原因。 – Ampere

+0

「您的項目中包含一個名爲GIFImg的單位」 - 當我控制 - 單擊GifImg時,它會將我帶到Embarcadero的文件。我將搜索整個驅動​​器中的另一個PAS文件,名爲GifImg.pas – Ampere

+1

@Altar:尋找dcu's以及... –

相關問題