首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >编译前验证文件的版本是否正确

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

Stack Overflow用户
提问于 2019-06-25 01:43:53
回答 1查看 138关注 0票数 2

为满足特定需求,Delphi自己的LIBs文件已被更改。因为我们有几个程序员,所以我需要确保每个人都有这个变化,将来也是如此。

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

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

我所能做的就是创建文件的散列,这样我就可以确保它没有被修改

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

这样它就不会工作了,因为每时每刻都会返回[Fatal Error]消息

有什么想法吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-06-25 02:07:17

我的Delphi时代已经过去很久了,但我使用C++的方法是,在库中添加一个项目所依赖的唯一符号。然后,如果符号丢失(即使用的不是您的库版本),您至少会得到一个链接时间错误。

这看起来是什么样子(不确定这在Delphi中是否可行)?除了对LIB的修改之外,您还添加了一个名为"MyModificationSentinelABCDEF()“的函数,该函数为空(名称并不重要,只需确保它是唯一的)。然后,不再使用您提出的$IF语句,而是添加对此函数的调用和描述性注释,以解释该函数存在的原因以及如果出现与其相关的错误时必须执行的操作。

如果该函数丢失,您应该会看到一个编译/链接错误。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56741544

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档