0

我已经使用 install.bat(分别来自 jcl 和 jvcl 文件夹)安装了最新的 Jedi VCL for Delphi(JVCL 3.49),没有错误。问题是当我运行 Delphi 2010 时,我收到很多关于 jvcl bpls 中无效入口点的错误。

entry point invalid @jclsysinfo@jclcheckwinversion$qqrri in JvCore140.pbl

我在所有 Jv*.bpl 文件中都收到此错误,并且始终使用相同的入口点。

我检查过我没有旧的 jcl/jvcl 文件或 jv*.bpl/jc*.bpl 文件。我不知道如何解决这个问题。有什么建议吗?

4

2 回答 2

0

(虽然我一直在写这篇文章,但 Stefan Glienke 已经发布了一个答案,其中包含更多有用的信息,但我还是会发布它,因为它很容易测试你是否只对一个 Delphi 版本感兴趣)

我不确定以下内容是否适合您,因为我没有安装 D2010 来对其进行测试。您可以通过在第 4 步中仅使用一个 .Dpk 文件来快速检查它。

请注意,我总是将 BPL、DCP 和 DCU 文件的输出路径设置为 Delphi 版本安装文件夹下的 Lib2 文件夹。这样我就知道它们都在哪里,这样如果出现问题就更容易整理。

  1. 我卸载了 JCL 和 JVCL 并删除了所有 JV*.BPL、.DCP 和 .DCU 文件

  2. 我运行了 JCL install .bat,并忽略了将文件夹添加到系统 PATH 的所有提示,因为我的 Lib2 文件夹已经在 PATH 上。

  3. 在 JVCL\Packages 下面我的 Delphi 版本的文件夹中,我编辑了所有 .Dpk 文件,以便将我的 Lib2 文件夹用于 BPL、DCP 和 DCU 输出文件。这有点乏味,但只需要完成一次,并且可以通过使用键盘宏来简化。

  4. 然后,使用 IDE 打包工具,编译并安装所有名称中包含“Design”并且我想要安装的 JVCL .Dpk 文件。

它们都安装了,但没有收到您收到的错误消息。

于 2017-05-25T11:03:52.733 回答
0

在 Delphi 中编译在编译时需要其他包的包时(如 JCL 和 JVCL 所做的那样),编译器将 dcp 文件用于所需包,而不是这些包的 bpl 文件。

例如,一些 RTL 包中的JvCore.dpkhasJcl和in its required 子句。JclVcl这意味着在编译时将获取Jcl.dcpJclVcl.dcp获取所需的过程/类在 bpl 中的位置的信息。

这些 dcp 文件大部分时间(除非另有说明 - 请参阅下一段)位于紧邻 BPL 文件夹的 DCP 文件夹中。

如果它使用的 dcp 与它在加载时找到的 bpl 不兼容,您将收到这些错误。确保在编译器可能找到的任何地方都没有任何旧的 bpl和dcp 文件。在 JCL 设置中,您可以指定将它们放在哪里,而 JVCL 设置将它们放在与 dcu 文件相同的目录中。

此外,如果您安装了不同的 Delphi 版本,情况会变得更糟,因为通常 dcp 文件没有后缀。如果它放置的目录恰好位于 PATH 变量中,则可能会找到错误的版本。然而,DCP 目录并没有被 Delphi 安装放到 PATH 中,而只是 BPL 目录。

于 2017-05-25T10:48:25.523 回答