BOOL GetVersion(LPTSTR lpszVersion, size_t nLength, LPCTSTR lpszExecute)
{
BOOL bRet = FALSE;
TCHAR* pVersion = NULL;
do
{
if ((NULL == lpszVersion) || (nLength <= 0) || (NULL == lpszExecute)) { break; }
DWORD dwSize = GetFileVersionInfoSize(lpszExecute, NULL);
if (0 == dwSize) { break; }
pVersion = new TCHAR[dwSize + 1];
if (NULL == pVersion) { break; }
_ASSERT(NULL != pVersion);
memset(pVersion, 0, sizeof(TCHAR) * (dwSize + 1));
if (!GetFileVersionInfo(lpszExecute, 0, dwSize, pVersion)) { break; }
VS_FIXEDFILEINFO * pInfo = NULL;
unsigned int nInfoLen = 0;
if (!VerQueryValue(pVersion, TEXT("\\"), (void**)&pInfo, &nInfoLen)) { break; }
StringCchPrintf(lpszVersion, nLength, TEXT("%d.%d.%d.%d"), HIWORD(pInfo->dwFileVersionMS), LOWORD(pInfo->dwFileVersionMS), HIWORD(pInfo->dwFileVersionLS), LOWORD(pInfo->dwFileVersionLS));
// Completed
bRet = TRUE;
} while (0);
if (NULL != pVersion) { delete[] pVersion; pVersion = NULL; }
return bRet;
}获取EXE文件版本信息(版本格式:xx.xx.xx.xx)
最新推荐文章于 2025-09-26 08:54:12 发布
本文介绍了一个C++函数,用于从指定执行文件中提取版本信息。该函数通过调用Windows API函数如GetFileVersionInfoSize, GetFileVersionInfo等来实现。文章详细展示了如何解析版本信息并将其格式化为字符串。
8200

被折叠的 条评论
为什么被折叠?



