从exe中读取版本信息

HRESULT CAboutDlg::GetVersion(__out CString& strVersion)
{
	strVersion = _T("版本未知");
	TCHAR szFileName[MAX_PATH] = {0};
	GetModuleFileName(NULL, szFileName, MAX_PATH);
	
	DWORD dwSize = GetFileVersionInfoSize(szFileName, NULL);
	if(dwSize == 0)
		return E_FAIL;

	TCHAR* pszVersionInfo = new TCHAR[dwSize];
	ZeroMemory(pszVersionInfo, dwSize);
	BOOL bRet = GetFileVersionInfo(szFileName, 0, dwSize, pszVersionInfo);
	if(!bRet)
	{
		delete [] pszVersionInfo;
		return E_FAIL;
	}

	VS_FIXEDFILEINFO *pFileInfo = NULL;
	UINT pLenFileInfo = 0;
	bRet = VerQueryValue(pszVersionInfo, _T("\\"), (LPVOID*)&pFileInfo, &pLenFileInfo);
	if(!bRet)
	{
		delete [] pszVersionInfo;
		return E_FAIL;
	}

	strVersion.Format(_T("%d.%d.%d.%d"),
		HIWORD(pFileInfo->dwFileVersionMS),
		LOWORD(pFileInfo->dwFileVersionMS),
		HIWORD(pFileInfo->dwFileVersionLS),
		LOWORD(pFileInfo->dwFileVersionLS));

	delete [] pszVersionInfo;

	return S_OK;
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值