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!