2008-12-07 31 views
0

我發現Delphi 2009的TFields實現中存在一個錯誤,並寫了一個快速補丁。我將DB.pas複製到我的項目文件夾並將其添加到項目的文件列表中,但現在我無法將其編譯。前兩個錯誤消息甚至沒有任何意義,當我去代碼中的指定位置。D2009無法編譯的VCL單元

當然,如果有什麼東西可以算作正確編譯的話,那就是CodeGear的代碼。他們已經設法編譯它來生成VCL組件。那麼我錯過了什麼?以下是編譯器的輸出:

[DCC Error] DB.pas(2536): E2134 Type 'Pointer' has no type info 
[DCC Error] DB.pas(10799): E2066 Missing operator or semicolon 
[DCC Error] DB.pas(12933): E2217 Published field 'FCursor' not a class or interface type 
[DCC Error] DB.pas(12934): E2217 Published field 'FTitle' not a class or interface type 
[DCC Fatal Error] testing.dpr(23): F2063 Could not compile used unit '..\..\..\vclpatch\DB.pas' 

回答

6

如果您在DB.pas單元的頂部添加以下行,它有幫助嗎? {$ A8,B-,C +,D +,E-,F-,G +,H +,I +,J-,K-,L +,M-,N-,O +,P +,Q-,R- ,S-,T-,U-,V +,W-,X +,Y +,Z1}

如果它在使用該行後工作,那麼您的項目選項與CodeGear用於編譯RTL/VCL。

順便說一下:第2536行是隻包含文本「type」的行。你有沒有改變文件?或者你錯過了更新1?

+0

工作。是的,這就是我的版本2536的版本。就像我說的,前兩個錯誤信息是沒有意義的。 – 2008-12-08 01:15:06

1

我遇到了與DB.pas相同的問題,但從未修改任何VCL單元。所以顯然必須是我的項目。切換發送運行時間類型信息false訣竅並解決了問題。

(項目選項:德爾福編譯器 - >編譯 - >代碼生成 - >發送運行時類型信息)