„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Wie erhalte ich programmgesteuert Versionsinformationen für DLLs und EXEs?

Wie erhalte ich programmgesteuert Versionsinformationen für DLLs und EXEs?

Veröffentlicht am 10.11.2024
Durchsuche:381

How to Programmatically Get Version Information for DLLs and EXEs?

So erhalten Sie programmgesteuert Versionsinformationen für DLLs und EXEs

Im Bereich der Softwareentwicklung ist es häufig erforderlich, die Versionsinformationen abzurufen, die mit dynamischen Linkbibliotheken verknüpft sind ( DLLs) und ausführbaren Programmen (EXEs). Durch die Verwendung nativer Win32-APIs, auf die über C oder C zugegriffen werden kann, können Entwickler nahtlos die Produkt- und Dateiversionen dieser ausführbaren Einheiten erwerben.

Die GetFileVersionInfo-API: Versionsinformationen freischalten

Der Schlüssel zum Freischalten von Versionsinformationen liegt in der GetFileVersionInfo-API. Diese leistungsstarke Funktion füllt einen Puffer mit Daten, die sich auf die angegebene DLL- oder EXE-Datei beziehen. Lassen Sie uns in die Feinheiten seiner Verwendung eintauchen:

  • Bestimmen Sie die Dateigröße: GetFileVersionInfoSize leitet die Optimierung der Speicherzuweisung durch Bereitstellung der erforderlichen Puffergröße.
  • Abrufen von Versionsdaten: GetFileVersionInfo gewährt Zugriff auf die Versionsinformationen, die sicher im Puffer gespeichert sind.
  • Abfragen des Puffers: VerQueryValue extrahiert eine Teilmenge von die Versionsdaten, die den vordefinierten Kriterien des Benutzers entsprechen.
  • Interpretieren von Versionsnummern: Durch das Verständnis der zugrunde liegenden Struktur der Versionsinformationen können Entwickler die vierteilige gepunktete Versionsnummer (x.x.x.x) aus den Werten dwFileVersionMS und dwFileVersionLS genau analysieren .

Beispiel für den Versionsabruf in der Praxis

Das folgende Codebeispiel veranschaulicht die praktische Anwendung der GetFileVersionInfo-API:

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;
}

Zusammenfassend bietet die GetFileVersionInfo-API eine umfassende Lösung zum programmgesteuerten Abrufen von Versionsinformationen von DLLs und EXEs. Durch die Nutzung dieser Funktionalität können Entwickler Aufgaben zum Abrufen von Versionen automatisieren und so Genauigkeit und Effizienz bei ihren Softwareentwicklungsbemühungen sicherstellen.

Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3