C++ 获取文件版本

static string GetFileVersion() 
{
	char FileName[MAX_PATH] = {0};
	::GetModuleFileName(NULL, FileName, sizeof(FileName) - 1);

	string asVer = "";
	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->dwFileVersionMS), LOWORD(pVsInfo->dwFileVersionMS), HIWORD(pVsInfo->dwFileVersionLS), LOWORD(pVsInfo->dwFileVersionLS));
				asVer = pBuf;
			}
		}
		delete pBuf;
	}
	return asVer;
}

发布了291 篇原创文章 · 获赞 68 · 访问量 43万+
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 大白 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览