Rumah > pembangunan bahagian belakang > C++ > Bagaimana Cara Mendapatkan Maklumat Versi Secara Pemrograman untuk DLL dan EXE?

Bagaimana Cara Mendapatkan Maklumat Versi Secara Pemrograman untuk DLL dan EXE?

Susan Sarandon
Lepaskan: 2024-10-29 14:17:02
asal
471 orang telah melayarinya

How to Programmatically Get Version Information for DLLs and EXEs?

Cara Mendapatkan Maklumat Versi Secara Pemrograman untuk DLL dan EXE

Dalam bidang pembangunan perisian, selalunya menjadi perlu untuk mendapatkan maklumat versi yang dikaitkan dengan perpustakaan pautan dinamik ( DLL) dan program boleh laku (EXE). Dengan menggunakan API asli Win32 yang boleh diakses melalui C atau C , pembangun boleh memperoleh produk dan versi fail entiti boleh laku ini dengan lancar.

API GetFileVersionInfo: Membuka Kunci Maklumat Versi

Kunci untuk membuka kunci maklumat versi terletak pada API GetFileVersionInfo. Fungsi berkuasa ini mengisi penimbal dengan data yang berkaitan dengan fail DLL atau EXE yang ditentukan. Marilah kita menyelidiki selok-belok penggunaannya:

  • Tentukan Saiz Fail: GetFileVersionInfoSize membimbing pengoptimuman peruntukan memori dengan menyediakan saiz penimbal yang diperlukan.
  • Mengambil Data Versi: geran GetFileVersionInfo akses kepada maklumat versi yang disimpan dengan selamat dalam penimbal.
  • Menyoal Penampan: VerQueryValue mengekstrak subset data versi, sepadan dengan kriteria yang dipratentukan pengguna.
  • Mentafsir Nombor Versi: Dengan memahami asas struktur maklumat versi, pembangun boleh menghuraikan nombor versi bertitik empat bahagian (x.x.x.x) dengan tepat daripada nilai dwFileVersionMS dan dwFileVersionLS.

Mencontohkan Pengambilan Versi dalam Amalan

Kod berikut sampel menggambarkan aplikasi praktikal API GetFileVersionInfo:

<code class="python">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) {
                    // Parse the file version into a four-part dotted string
                    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>
Salin selepas log masuk

Kesimpulannya, API GetFileVersionInfo menyediakan penyelesaian yang komprehensif untuk mendapatkan maklumat versi secara pemrograman daripada DLL dan EXE. Dengan memanfaatkan fungsi ini, pembangun boleh mengautomasikan tugas mendapatkan semula versi, memastikan ketepatan dan kecekapan dalam usaha pembangunan perisian mereka.

Atas ialah kandungan terperinci Bagaimana Cara Mendapatkan Maklumat Versi Secara Pemrograman untuk DLL dan EXE?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan