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.
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:
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.
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