D2009 VCL单元不会编译

时间:2008-12-07 18:28:05

标签: database delphi compiler-construction delphi-2009

我在Delphi 2009的TFields实现中发现了一个错误并写了一个快速补丁。我将DB.pas复制到我的项目文件夹并将其添加到项目的文件列表中,但现在我无法编译它。当我转到代码中指定的位置时,前两个错误消息甚至没有任何意义。

当然,如果可以依赖任何东西进行正确编译,那么它就是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'

2 个答案:

答案 0 :(得分: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 +,Z 1}

如果在使用此行后它可以正常工作,那么您的项目选项与CodeGear用于编译RTL / VCL的设置不兼容。

BTW:第2536行是仅包含文本“type”的行。你有没有改变文件?或者你错过了Update 1?

答案 1 :(得分:1)

我遇到了与DB.pas相同的问题,但从未修改过任何VCL单元。因此,原因显然必须是我的项目。将发送运行时类型信息切换为 false 可以解决问题。

(项目选项:Delphi编译器 - >编译 - >代码生成 - >发送运行时类型信息)