编译前验证文件版本是否正确

Verify that the version of a file is correct before Compiling

已更改 Delphi 自己的 LIB 文件,以满足特定需求。由于我们有几个程序员,我需要确保每个人都有这个变化,并且在未来也是如此。

由于 Delphi 库已安装且未进行版本控制,我需要验证它的版本是否正确。

我想在编译版本之前这样做

我能够做的是创建文件的哈希值,以确保它没有被修改

{$IF  getMD5('C:\Delphi7\Lib\arquivo.dcu') = 'B1C1CBE80477S09AC4C1B39C28FE9619'}
    {$Message Fatal 'Version of file .dcu file in Delphi7 Lib is wrong..}
{$IFEND}

那样行不通,因为每时每刻returns [Fatal Error]

的消息

有什么想法吗?

我的 Delphi 时间很久以前,但我使用 C++ 的方法是,向项目所依赖的库添加一个唯一的符号。然后,如果符号丢失(即未使用您的库版本),您至少会收到 link 时间错误。

这看起来怎么样(不确定这在 Delphi 中是否可行)? 除了对 LIB 的修改之外,您还添加了一个名为 "MyModificationSentinelABCDEF()" 的空函数(名称并不重要,只要确保它是唯一的即可)。然后,而不是您建议的 $IF 语句,您添加对此函数的调用和描述性注释来解释它为什么存在以及如果有与之相关的错误必须做什么。

如果函数缺失,您应该会看到 compile/link 错误。