Maison > développement back-end > C++ > le corps du texte

Comment récupérer des versions de fichiers DLL ou EXE par programme en C ou C ?

Barbara Streisand
Libérer: 2024-10-30 01:25:28
original
372 Les gens l'ont consulté

How to Retrieve DLL or EXE File Versions Programmatically in C or C  ?

Comment récupérer par programme les versions de fichiers DLL ou EXE en C ou C

Souvent, lors du dépannage de problèmes logiciels ou de la vérification de l'intégrité des fichiers, cela devient nécessaire pour obtenir les informations de version d’un fichier DLL ou EXE donné. En utilisant les API Win32 natives, les développeurs C et C peuvent récupérer efficacement ces numéros de version, qui sont généralement présentés sous la forme d'une notation pointée en quatre parties (par exemple, x.x.x.x) sous l'onglet « Détails » dans la fenêtre Propriétés du fichier.

Pour accomplir cette tâche, il faut utiliser l'API GetFileVersionInfo. Comme documenté sur MSDN, cette API permet d'accéder aux informations de version associées au fichier spécifié. En utilisant cette API, les développeurs peuvent obtenir la version du produit et la version du fichier des DLL et des EXE.

L'exemple de code suivant montre comment récupérer les informations de version à l'aide de GetFileVersionInfo et VerQueryValue :

<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) {
                    // DWORD is always 32 bits, regardless of system architecture
                    // Get the version numbers from dwFileVersionMS and dwFileVersionLS
                    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>
Copier après la connexion

En utilisant les API et l'exemple de code susmentionnés, les programmeurs peuvent facilement récupérer les informations de version de n'importe quel fichier DLL ou EXE. Cette fonctionnalité s'avère inestimable lors du débogage ou de la réalisation d'inspections détaillées de fichiers.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal