En el ámbito del desarrollo de software, a menudo resulta necesario recuperar la información de versión asociada con bibliotecas de enlaces dinámicos ( DLL) y programas ejecutables (EXE). Al utilizar las API nativas de Win32 accesibles a través de C o C, los desarrolladores pueden adquirir sin problemas las versiones de productos y archivos de estas entidades ejecutables.
La clave para desbloquear información de versión se encuentra en la API GetFileVersionInfo. Esta poderosa función llena un búfer con datos pertenecientes al archivo DLL o EXE especificado. Profundicemos en las complejidades de su uso:
El siguiente código El ejemplo ilustra la aplicación práctica de la 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 conclusión, la API GetFileVersionInfo proporciona una solución integral para obtener información de versión mediante programación de archivos DLL y EXE. Al aprovechar esta funcionalidad, los desarrolladores pueden automatizar las tareas de recuperación de versiones, garantizando precisión y eficiencia en sus esfuerzos de desarrollo de software.
Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.
Copyright© 2022 湘ICP备2022001581号-3