void getFileVersionInfo(QString &strProductVersion, QString &strFileVersion)
{
QString fullName = QCoreApplication::applicationFilePath();
std::string strTemp = fullName.toStdString();
LPCSTR str_path = strTemp.c_str();
DWORD vHandle = 0;
DWORD dwLen = GetFileVersionInfoSizeA(str_path, &vHandle);
if (0 == dwLen) {
return;
}
char* lpData = (char*)malloc(dwLen + 1);
if (NULL == lpData) {
return;
}
do {
// ProductVersion
BOOL bSuccess = GetFileVersionInfoA(str_path, 0, dwLen + 1, lpData);
if (!bSuccess) break;
LPVOID lpBuffer = NULL;
UINT uLen = 0;
bSuccess = VerQueryValueA(lpData, "\\StringFileInfo\\080404b0\\ProductVersion", &lpBuffer, &uLen);
if (!bSuccess) {
DWORD ttt = GetLastError();
break;
}
strProductVersion = QString::fromLatin1((char *)lpBuffer);
// FileVersion
lpBuffer = NULL;
uLen = 0;
bSuccess = VerQueryValueA(lpData, "\\StringFileInfo\\080404b0\\FileVersion", &lpBuffer, &uLen);
if (!bSuccess) {
DWORD ttt = GetLastError();
break;
}
strFileVersion = QString::fromLatin1((char *)lpBuffer);
} while (false);
free(lpData);
lpData = NULL;
}
Qt/C++获取应用软件版本号(ProductVersion/FileVersion)
最新推荐文章于 2023-10-06 20:51:17 发布