首页 > 后端开发 > C++ > 正文

如何使用 Win32 API 从 DLL 和 EXE 检索版本信息?

DDD
发布: 2024-11-01 11:22:46
原创
359 人浏览过

How to Retrieve Version Information from DLLs and EXEs using Win32 APIs?

使用 Win32 API 从 DLL 和 EXE 检索版本信息

在处理 DLL 和 EXE 时,经常需要获取它们的版本数字。与 Windows 版本相反,这个由四部分组成的点版本(例如 x.x.x.x)可以通过文件属性中的“详细信息”选项卡访问。

解决方案:GetFileVersionInfo API

以编程方式检索版本信息的关键在于 GetFileVersionInfo API。详细文档可在 Microsoft 的 MSDN 网站上找到,标题为“使用版本信息”。

示例实现

在 C 或 C 中,典型的实现可能类似于以下内容code:

<code class="c++">DWORD verHandle = 0;
UINT size = 0;
LPBYTE lpBuffer = NULL;
DWORD verSize = GetFileVersionInfoSize(szVersionFile, &verHandle);

if (verSize != NULL) {
    LPSTR verData = new char[verSize];

    if (GetFileVersionInfo(szVersionFile, verHandle, verSize, verData)) {
        if (VerQueryValue(verData, "\", (VOID FAR* FAR*)&lpBuffer, &size)) {
            if (size) {
                VS_FIXEDFILEINFO *verInfo = (VS_FIXEDFILEINFO *)lpBuffer;
                if (verInfo->dwSignature == 0xfeef04bd) {
                    TRACE( "File Version: %d.%d.%d.%d\n",
                    ( verInfo->dwFileVersionMS >> 16 ) & 0xffff,
                    ( verInfo->dwFileVersionMS >>  0 ) & 0xffff,
                    ( verInfo->dwFileVersionLS >> 16 ) & 0xffff,
                    ( verInfo->dwFileVersionLS >>  0 ) & 0xffff
                    );
                }
            }
        }
    }
    delete[] verData;
}</code>
登录后复制

记得将 'szVersionFile' 调整为实际路径和文件名您想要检查的 DLL 或 EXE 的名称。

以上是如何使用 Win32 API 从 DLL 和 EXE 检索版本信息?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!