gpt4 book ai didi

delphi - 在程序启动时获取 BPL 版本

转载 作者:行者123 更新时间:2023-12-03 18:25:38 28 4
gpt4 key购买 nike

是否可以在程序启动时检查客户端计算机上安装了哪个版本的 BPL(即 Rtl70.BPL、Indy70.bpl 等)?

我有一些程序崩溃,因为那里计算机上的 BPL 与构建机器上的不同。
如果我必须在每次更新时将每个 BPL 添加到安装程序中,我认为它会破坏使用它们的要点之一。

Delphi 7,如果它有所作为

只是跟进我遇到的问题。
构建计算机和客户端之间的 rtl70.bpl 文件仅略有不同。

Clients Computer: 7.0.4.453 760 KB (778,240 bytes) Tuesday, 20 August 2002, 4:40:26 PM
Build computer: 7.0.4.453 760 KB (778,240 bytes) ‎Friday, ‎9 ‎August ‎2002, ‏‎11:30:00 PM



我使用的更新程序忽略了它们,因为它们是相同的(内部版本号没有变化),但是当我手动删除并复制文件时,一切似乎都有效。

最佳答案

很不幸的是,不行。如果崩溃是由于缺少应用程序所需的 .bpl 文件的导入,则无法(除了重写 Delphi RTL 和链接器本身)从崩溃的可执行文件本身检查这些包。 PatrickvL 的解决方案可能最适合您的情况。

Neftalí 的解决方案可能是一种选择——当然,代价是打包 RTL、复制大量文件以及失去最初拥有包的一个要点。但是,如果您使用私有(private) DLL(即,如果您将 DLL 复制到私有(private)二进制目录中),那么您还应该创建一个与可执行文件同名但附加扩展名 的空文件。 .local 给它,即对于 记事本.exe 你会创建一个 notepad.exe.local .见 Raymond Chen's article on DLL redirection更多细节。

关于delphi - 在程序启动时获取 BPL 版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/99057/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com