在软件开发领域,经常需要检索与动态链接库相关的版本信息( DLL)和可执行程序(EXE)。通过利用可通过 C 或 C 语言访问的 Win32 本机 API,开发人员可以无缝获取这些可执行实体的产品和文件版本。
解锁版本信息的关键位于 GetFileVersionInfo API 中。这个强大的函数用与指定 DLL 或 EXE 文件相关的数据填充缓冲区。让我们深入研究其用法的复杂性:
以下代码示例说明了 GetFileVersionInfo API 的实际应用:
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;
}
总之,GetFileVersionInfo API 提供了一个全面的解决方案,用于以编程方式从 DLL 和 EXE 获取版本信息。通过利用此功能,开发人员可以自动执行版本检索任务,确保软件开发工作的准确性和效率。
免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。
Copyright© 2022 湘ICP备2022001581号-3