我一直在研究Delphi代码,该代码可在我的计算机(计算机A)上使用。我正在另一台计算机(计算机B)上执行相同的代码。所以我去了那台计算机B,通过SVN获得了Delphi代码,并尝试构建。
但是我得到了错误:
[Pascal致命错误] URoneParams.pas(7):F1026找不到文件: 'CRBatchMove.dcu'
我想检查计算机A上是否有.dcu。但是,当我在计算机A上检查源代码时,有很多.dcu,但“ CRBatchMove.dcu”不是其中之一。
你知道吗?
非常感谢您的帮助!
编辑1 非常感谢大家的快速回答!
@ MBo和David :无论我是在计算机A的文件中还是在计算机B的文件中查找该.pas,都不存在
@ MartynA :我确实在“文件”中进行了搜索。在两台计算机上,它都返回URParams.pas,它确实使用CRBatchMove。这是一个好兆头吗? :)
您认为我应该怎么做?再次谢谢你!
答案 0 :(得分:1)
单位CRBatchMove是"Universal Data Access Components" by DevArt的一部分。
您还必须在目标计算机上安装这些组件。请注意,这是商业软件,因此您需要有效的许可才能在多台计算机上并由多人安装和使用该组件。
在安装组件时,它们作为软件包(*.bpl
文件)分发。一个包可以包含多个编译单元。这就是为什么找不到CRBatchMove.dcu
文件的原因。它包含在dac*.bpl
(或类似文件)中。
答案 1 :(得分:0)
对此,我唯一能想到的解释是您的项目是否设置为使用运行时程序包,而CRBatchMove的代码已编译为项目所依赖的运行时程序包之一。如果是这种情况,请尝试将您项目所依赖的软件包(.Bpl文件)复制到计算机B上,前提是您的.Bpls许可证允许这样做。
如果您的项目是一个独立的应用程序,那么即使您找到一个包含CRBatchMove代码的.Bpl文件,将其复制到计算机B也不会帮助您在计算机B中编译项目,因为Delphi编译器无法从.Bpl中提取代码以将其编译到您的项目中。这与使用run-tome软件包之间存在差异的原因是,当CRBatchMove位于其中一个软件包中时,编译器不需要生成其代码以包含在您的项目中,只需在运行时调用CRBatchMove代码即可时间包。