获取exe版本号
QString getversion()
{
char szapipath[MAX_PATH];
memset(szapipath, 0, MAX_PATH);
GetModuleFileNameA(NULL, szapipath, MAX_PATH);
QString Tacoredll = QString::fromLocal8Bit(szapipath);
exeversionInfo = getfileVersionInfo(Tacoredll);
return exeversionInfo;
}
QString getfileVersionInfo(QString files)
{
const char* filePath;
QByteArray ba;
ba = files.toLocal8Bit();
filePath = ba.data();
int iVerInfoSize = 0;
char *pBuf = nullptr;
QString retQStr;
VS_FIXEDFILEINFO *pVsInfo = nullptr;
unsigned int iFileInfoSize = sizeof(VS_FIXEDFILEINFO);
char szDirBuf[MAX_PATH] = { 0 };
iVerInfoSize = GetFileVersionInfoSizeA(filePath, NULL);
if (iVerInfoSize != 0)
{
pBuf = new char[iVerInfoSize];
if (GetFileVersionInfoA(filePath, 0, iVerInfoSize, pBuf))
{
if (VerQueryValueA(pBuf, "\\", (void **)&pVsInfo, &iFileInfoSize))
{
retQStr = QString("%1.%2.%3.%4").arg(HIWORD(pVsInfo->dwFileVersionMS)).arg(LOWORD(pVsInfo->dwFileVersionMS)).
arg(HIWORD(pVsInfo->dwFileVersionLS)).arg(LOWORD(pVsInfo->dwFileVersionLS));
}
}
delete[] pBuf;
}
return retQStr;
}