Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk Mengambil Versi Fail DLL atau EXE Secara Pengaturcaraan dalam C atau C?

Bagaimana untuk Mengambil Versi Fail DLL atau EXE Secara Pengaturcaraan dalam C atau C?

Barbara Streisand
Barbara Streisandasal
2024-10-30 01:25:28314semak imbas

How to Retrieve DLL or EXE File Versions Programmatically in C or C  ?

Cara Mendapatkan Versi Fail DLL atau EXE secara Pengaturcaraan dalam C atau C

Selalunya, apabila menyelesaikan masalah perisian atau mengesahkan integriti fail, ia menjadi diperlukan untuk mendapatkan maklumat versi untuk fail DLL atau EXE tertentu. Dengan menggunakan API Win32 asli, pembangun C dan C boleh mendapatkan semula nombor versi ini dengan berkesan, yang biasanya dibentangkan sebagai tatatanda empat bahagian bertitik (cth., x.x.x.x) di bawah tab "Butiran" dalam tetingkap Properties fail.

Untuk melaksanakan tugas ini, seseorang mesti menggunakan API GetFileVersionInfo. Seperti yang didokumenkan pada MSDN, API ini menyediakan akses kepada maklumat versi yang dikaitkan dengan fail yang ditentukan. Dengan menggunakan API ini, pembangun boleh mendapatkan versi produk dan versi fail DLL dan EXE.

Sampel kod berikut menunjukkan cara untuk mendapatkan semula maklumat versi menggunakan GetFileVersionInfo dan VerQueryValue:

<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) {
                    // DWORD is always 32 bits, regardless of system architecture
                    // Get the version numbers from dwFileVersionMS and 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;
}</code>

Dengan menggunakan API dan sampel kod yang disebutkan di atas, pengaturcara boleh dengan mudah mendapatkan maklumat versi mana-mana fail DLL atau EXE. Keupayaan ini terbukti tidak ternilai apabila menyahpepijat atau menjalankan pemeriksaan fail terperinci.

Atas ialah kandungan terperinci Bagaimana untuk Mengambil Versi Fail DLL atau EXE Secara Pengaturcaraan dalam C atau C?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn