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!