"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Comment obtenir par programme des informations sur la version des DLL et des EXE ?

Comment obtenir par programme des informations sur la version des DLL et des EXE ?

Publié le 2024-11-10
Parcourir:777

How to Programmatically Get Version Information for DLLs and EXEs?

Comment obtenir par programme des informations de version pour les DLL et les EXE

Dans le domaine du développement logiciel, il devient souvent nécessaire de récupérer les informations de version associées aux bibliothèques de liens dynamiques ( DLL) et programmes exécutables (EXE). En utilisant les API natives Win32 accessibles via C ou C , les développeurs peuvent acquérir en toute transparence les versions de produit et de fichier de ces entités exécutables.

L'API GetFileVersionInfo : Déverrouillage des informations de version

La clé pour déverrouiller les informations de version réside dans l'API GetFileVersionInfo. Cette fonction puissante remplit un tampon avec les données relatives au fichier DLL ou EXE spécifié. Examinons les subtilités de son utilisation :

  • Déterminez la taille du fichier : GetFileVersionInfoSize guide l'optimisation de l'allocation de mémoire en fournissant la taille de tampon requise.
  • Récupération des données de version : GetFileVersionInfo accorde accès aux informations de version stockées en toute sécurité dans le tampon.
  • Interrogation du tampon : VerQueryValue extrait un sous-ensemble des données de version, correspondant aux critères prédéfinis de l'utilisateur.
  • Interprétation des numéros de version : en comprenant le sous-jacent structure des informations de version, les développeurs peuvent analyser avec précision le numéro de version en quatre parties (x.x.x.x) à partir des valeurs dwFileVersionMS et dwFileVersionLS.

Exemple de récupération de version en pratique

Le code suivant L'exemple illustre l'application pratique de l'API GetFileVersionInfo :

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

En conclusion, l'API GetFileVersionInfo fournit une solution complète pour obtenir par programmation des informations de version à partir de DLL et d'EXE. En exploitant cette fonctionnalité, les développeurs peuvent automatiser les tâches de récupération de versions, garantissant ainsi la précision et l'efficacité de leurs efforts de développement logiciel.

Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3