使用 Win32 API 从 DLL 和 EXE 检索版本信息
在处理 DLL 和 EXE 时,经常需要获取它们的版本数字。与 Windows 版本相反,这个由四部分组成的点版本(例如 x.x.x.x)可以通过文件属性中的“详细信息”选项卡访问。
解决方案:GetFileVersionInfo API
以编程方式检索版本信息的关键在于 GetFileVersionInfo API。详细文档可在 Microsoft 的 MSDN 网站上找到,标题为“使用版本信息”。
示例实现
在 C 或 C 中,典型的实现可能类似于以下内容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>
记得将 'szVersionFile' 调整为实际路径和文件名您想要检查的 DLL 或 EXE 的名称。
以上是如何使用 Win32 API 从 DLL 和 EXE 检索版本信息?的详细内容。更多信息请关注PHP中文网其他相关文章!