出于疑难解答的目的,我的应用程序可以在运行时检查是否有实用的方式:
> openssl dll(ssleay32.dll和libeay32.dll)是否真的存在并且能够被我的应用程序成功加载?
> openssl dll实际加载的路径是什么(所以我可以验证它是从应用程序目录中的副本加载它,还是从某个地方的系统路径中拾取一些杂散副本)
>什么版本的openssl是我的应用程序(或Indy)使用的? (如果我知道确切的路径,大多数版本的openssl dll都包含我可以通过查看Windows文件属性检查的版本信息)
解决方法
是.你问的顺序是这样的:
>对每个DLL使用LoadLibrary
并检查返回值.
>如果#1成功,请使用GetModuleFileName
检索已加载的DLL的完整路径名.
>如果#2成功,请使用GetFileVersionInfo
查看DLL是否具有可用的文件版本信息.如果是,请使用VerQueryValue
读取版本信息(通过查看Windows文件属性看到的相同信息).
它们都可以从Windows单元获得. Delphi中的所有三个示例都应该在StackOverflow中找到.如果您找不到它们,请在此处发布单独的问题(请参阅下文)以寻求帮助.
(这里的帖子应该包含一个问题,因此可以选择一个答案作为答案.如果你在同一篇文章中包含多个问题,那么几个人可以分别回答其中一个;在这种情况下,你如何选择哪个一个接受正确吗?)