需要包含:Version.lib
std::string GetFileVersionTS()
{
static std::string asVer = "";
if (asVer != "")
return asVer;
char FileName[MAX_PATH] = { 0 };
::GetModuleFileName(NULL, FileName, sizeof(FileName) - 1);
VS_FIXEDFILEINFO *pVsInfo;
unsigned int iFileInfoSize = sizeof(VS_FIXEDFILEINFO);
int iVerInfoSize = GetFileVersionInfoSize(FileName, NULL);
if (iVerInfoSize != 0){
char *pBuf = NULL;
while (!pBuf){
pBuf = new char[iVerInfoSize];
}
if (GetFileVersionInfo(FileName, 0, iVerInfoSize, pBuf)){
if (VerQueryValue(pBuf, "\\", (void **)&pVsInfo, &iFileInfoSize)){
sprintf(pBuf, "%d.%d.%d.%d", HIWORD(pVsInfo->dwProductVersionMS), LOWORD(pVsInfo->dwProductVersionMS), HIWORD(pVsInfo->dwProductVersionLS), LOWORD(pVsInfo->dwProductVersionLS));
asVer = pBuf;
}
}
delete pBuf;
}
return asVer;
}