Maison  >  Article  >  développement back-end  >  Comment récupérer les informations de version des DLL et des EXE à l'aide des API Win32 ?

Comment récupérer les informations de version des DLL et des EXE à l'aide des API Win32 ?

DDD
DDDoriginal
2024-11-01 11:22:46360parcourir

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

Récupération des informations de version à partir de DLL et d'EXE à l'aide des API Win32

Lorsqu'il s'agit de DLL et d'EXE, il est souvent nécessaire d'obtenir leur version Nombres. Contrairement à la version Windows, cette version en quatre parties pointées (ex. x.x.x.x) est accessible via l'onglet "Détails" du fichier dans ses propriétés.

Solution : API GetFileVersionInfo

La clé pour récupérer les informations de version par programmation réside dans l'API GetFileVersionInfo. Une documentation détaillée est disponible sur le site Web MSDN de Microsoft sous le titre approprié « Utilisation des informations sur la version ».

Exemple d'implémentation

En C ou C, une implémentation typique peut ressembler à ce qui suit 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>

N'oubliez pas d'ajuster 'szVersionFile' avec le chemin et le nom de fichier réels de la DLL ou de l'EXE que vous souhaitez inspecter.

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!

Déclaration:
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