首頁 >後端開發 >C++ >如何在 C/C 中以程式設計方式取得 DLL 或 EXE 檔案的版本?

如何在 C/C 中以程式設計方式取得 DLL 或 EXE 檔案的版本?

Susan Sarandon
Susan Sarandon原創
2024-10-30 19:57:021033瀏覽

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:

    利用GetFileVersionInfo API:

  2. 此函數提供與指定文件關聯的版本資訊。

    範例實作:

    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;
    }
  3. 以下程式碼示範如何使用GetFileVersionInfo API 擷取版本號:

透過利用GetFileVersionInfo API,您可以有效地檢索DLL 或EXE 檔案的版本信息,使您能夠執行版本檢查和其他相關任務。

以上是如何在 C/C 中以程式設計方式取得 DLL 或 EXE 檔案的版本?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn