0

我一直在研究一个 Delphi 代码,它可以在我的计算机(计算机 A)上运行。我正在尝试在另一台计算机(计算机 B)上执行相同的代码。所以我去了那台计算机 B,通过 SVN 获得了 Delphi 代码,并尝试构建。

但我得到了错误:

[Pascal 致命错误] URoneParams.pas(7):F1026 找不到文件:'CRBatchMove.dcu'

我想检查计算机 A 上是否有那个 .dcu。但是当我检查那台计算机 A 上的源时,有很多 .dcu,但“CRBatchMove.dcu”不是其中之一。

你知道吗 :

  • 如何解决计算机 B 上的 .dcu 错误?
  • 为什么计算机 A 的文件中不存在 CRBatchMove.dcu?

非常感谢您的帮助!

编辑 1 非常感谢大家的快速回答!

@ MBo 和大卫:.pas 也不存在,无论我是在计算机 A 的文件中还是在计算机 B 的文件中查找它。

@MartynA:我确实在文件中进行了搜索。在两台计算机上,它都返回 URParams.pas,它确实使用了 CRBatchMove。这是一个好兆头吗?:)

你觉得我应该怎么做?再次感谢你!

4

2 回答 2

1

我能想到的唯一解释是,如果您的项目设置为使用运行时包,并且 CRBatchMove 的代码被编译成您的项目所依赖的运行时包之一。如果是这种情况,请尝试将项目依赖的包(.Bpl 文件)复制到机器 B 上,假设您的 .Bpls 许可证允许这样做。

如果您的项目是独立应用程序,那么即使您可以找到包含 CRBatchMove 代码的 .Bpl 文件,将其复制到机器 B 也不会帮助您在机器 B 中编译您的项目,因为 Delphi 编译器无法提取代码从 .Bpl 将其编译到您的项目中。这与使用 run-tome 包之间存在差异的原因是,当 CRBatchMove 在其中一个包中时,编译器不需要生成其代码以包含在您的项目中,只需在运行中调用 CRBatchMove 代码的代码时间包。

于 2018-09-24T21:20:39.087 回答
1

CRBatchMove 单元是 DevArt 的“通用数据访问组件”的一部分

您还必须在目标计算机上安装这些组件。请注意,这是商业软件,因此您需要有效的许可证才能在多台计算机上和多人一起安装和使用该组件。

安装组件时,它们作为包(*.bpl文件)分发。一个包可以包含多个编译单元。这就是您找不到CRBatchMove.dcu文件的原因。它包含在dac*.bpl(或类似的)文件中。

于 2018-09-24T13:27:36.113 回答