首页  >  文章  >  后端开发  >  如何在 C/C 中以编程方式获取 DLL 或 EXE 文件的版本?

如何在 C/C 中以编程方式获取 DLL 或 EXE 文件的版本?

Susan Sarandon
Susan Sarandon原创
2024-10-30 19:57:02999浏览

How to Programmatically Get the Version of a DLL or EXE File in C/C  ?

如何以编程方式获取 DLL 或 EXE 文件的版本

获取 DLL 或 EXE 文件的产品和文件版本是软件开发的一个重要方面。要使用 Win32 本机 API 在 C 或 C 中完成此操作,请按照以下步骤操作:

  1. 利用 GetFileVersionInfo API:

    此函数提供对与指定文件关联的版本信息。

  2. 示例实现:

    以下代码演示如何使用 GetFileVersionInfo API 检索版本号:

    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)
                    {
                        // DWORD is always 32 bits, so first two revision numbers
                        // come from dwFileVersionMS, last two come from dwFileVersionLS
                        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;
    }

通过利用 GetFileVersionInfo API,您可以有效地检索 DLL 或 EXE 文件的版本信息,使您能够执行版本检查和其他相关任务。

以上是如何在 C/C 中以编程方式获取 DLL 或 EXE 文件的版本?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn