Heim  >  Artikel  >  Backend-Entwicklung  >  Wie rufe ich Versionsinformationen von DLLs und EXEs mithilfe von Win32-APIs ab?

Wie rufe ich Versionsinformationen von DLLs und EXEs mithilfe von Win32-APIs ab?

DDD
DDDOriginal
2024-11-01 11:22:46360Durchsuche

How to Retrieve Version Information from DLLs and EXEs using Win32 APIs?

Abrufen von Versionsinformationen von DLLs und EXE-Dateien mithilfe von Win32-APIs

Beim Umgang mit DLLs und EXE-Dateien besteht häufig die Notwendigkeit, deren Version abzurufen Zahlen. Im Gegensatz zur Windows-Version ist diese vierteilige gepunktete Version (z. B. x.x.x.x) über die Registerkarte „Details“ der Datei in ihren Eigenschaften zugänglich.

Lösung: GetFileVersionInfo API

Der Schlüssel zum programmgesteuerten Abrufen von Versionsinformationen liegt in der GetFileVersionInfo-API. Eine ausführliche Dokumentation finden Sie auf der MSDN-Website von Microsoft unter dem treffenden Titel „Using Version Information“.

Beispielimplementierung

In C oder C könnte eine typische Implementierung wie folgt aussehen Code:

<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) {
                    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>

Denken Sie daran, „szVersionFile“ mit dem tatsächlichen Pfad und Dateinamen der DLL oder EXE-Datei anzupassen, die Sie überprüfen möchten.

Das obige ist der detaillierte Inhalt vonWie rufe ich Versionsinformationen von DLLs und EXEs mithilfe von Win32-APIs ab?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn