Bagaimanakah saya boleh mendapatkan maklumat versi daripada DLL dan EXE menggunakan Win32 API dalam C atau C?

DDD
Lepaskan: 2024-11-01 08:23:02
asal
435 orang telah melayarinya

How can I retrieve version information from DLLs and EXEs using Win32 API in C or C  ?

Mendapatkan Maklumat Versi untuk DLL dan EXE

Banyak aplikasi memerlukan keupayaan untuk mendapatkan semula maklumat versi daripada fail. Maklumat ini digunakan untuk tujuan paparan, seperti menunjukkan nombor versi pada kotak dialog sifat.

API Win32 menyediakan beberapa fungsi yang boleh digunakan untuk mendapatkan maklumat versi. Satu pendekatan biasa ialah menggunakan API GetFileVersionInfo.

Menggunakan GetFileVersionInfo

Fungsi GetFileVersionInfo mendapatkan semula maklumat tentang sumber versi fail. Langkah-langkah yang terlibat dalam menggunakan fungsi ini ialah:

  1. Panggil GetFileVersionInfo dengan laluan fail dan penuding kepada pembolehubah DWORD yang akan menerima pemegang kepada maklumat versi.
  2. Panggil GetFileVersionInfoSize dengan laluan fail dan pemegang dari langkah 1 untuk menentukan saiz maklumat versi.
  3. Peruntukkan penimbal saiz yang diambil dalam langkah 2.
  4. Panggil GetFileVersionInfo sekali lagi dengan laluan fail, kendalikan , saiz dan penunjuk kepada penimbal dari langkah 3 untuk mendapatkan semula maklumat versi.

Mengekstrak Data Versi

Setelah maklumat versi diperoleh semula, anda boleh menggunakan fungsi VerQueryValue untuk mengekstrak maklumat tertentu. Kod sampel berikut menunjukkan cara mengekstrak versi produk dan nombor versi fail:

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)
            {
                TRACE("File Version: %d.%d.%d.%d\n",
                (verInfo->dwFileVersionMS >> 16) & 0xffff,
                (verInfo->dwFileVersionMS >> 0) & 0xffff,
                (verInfo->dwFileVersionLS >> 16) & 0xffff,
                (verInfo->dwFileVersionLS >> 0) & 0xffff
                );
            }
        }
    }
}
Salin selepas log masuk

Dengan mengikuti langkah ini, anda boleh mendapatkan versi produk dan nombor versi fail secara pemrograman untuk fail DLL atau EXE menggunakan API asli Win32 dalam C atau C .

Atas ialah kandungan terperinci Bagaimanakah saya boleh mendapatkan maklumat versi daripada DLL dan EXE menggunakan Win32 API dalam C atau C?. 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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!