我可以重新编译Delphi IDE使用的.PAS文件吗?
我熟悉
Jeff Atwood’s article about how errors are always the programmer’s fault,但我相信我确实在Delphi .pas文件中发现了一个错误.
具体来说,我使用的是Delphi 2007,错误发生在DBCommon.pas文件的第955行,该文件位于我的机器上:
代码是这样的: ... FieldIndex := StrToInt(Token); if DataSet.FieldCount >= FieldIndex then LastField := DataSet.Fields[FieldIndex-1].FieldName else ... 如果“Token”的值为零,那么我们尝试访问DataSet.Fields的索引-1,从而导致列表索引超出边界错误. 这个错误不会引发给用户,因为它在它达到高位之前就被处理了,但是每次发生这种情况时调试器都会中断是非常恼人的. 我可以“忽略这个异常类型”,但索引越界错误很常见,我不想普遍忽略它们. 导致FieldIndex为零的情况是当您有一个SELECT语句,其ORDER BY包含一个函数时,如: ORDER BY CASE WHEN FIELD1 = FIELD3 THEN 1 ELSE 2 END,CASE WHEN FIELD2 = FIELD4 THEN 1 ELSE 2 END 我可以修复DBCommon.pas中的错误,但Delphi不会重新编译,我的更改不会生效.如果我重命名.DCU文件,那么它只是抱怨无法找到“DBCommon.dcu”. 所以(最后)我的问题是:我可以用我的修复程序重新编译DBCommon.pas,如果是的话,怎么样? 解决方法
您可以将dbcommon.pas放在项目目录中.然后将与项目的其余部分一起编译.
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |