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>
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!