vc++ 获的dll版本信息

首先添加#pragma comment(lib,"Version.lib")

CString GetProductVersion(LPCTSTR lpszFileName)   
{   
	CString strVersion;   
	TCHAR szSrcfn[MAX_PATH]; // 要获取信息的文件   
	if(lpszFileName == NULL)   
		::GetModuleFileName(NULL, szSrcfn, sizeof(szSrcfn));   
	else   
		lstrcpy(szSrcfn, lpszFileName);   

	// 读文件信息   
	DWORD dwVerHnd = 0;   
	DWORD dwVerInfoSize = ::GetFileVersionInfoSize(szSrcfn, &dwVerHnd);   
	if(dwVerInfoSize)   
	{   
		HANDLE hMem;   
		LPVOID lpvMem;   
		unsigned int uInfoSize = 0;   
		VS_FIXEDFILEINFO * pFileInfo;   

		hMem = ::GlobalAlloc(GMEM_MOVEABLE, dwVerInfoSize);   
		lpvMem = ::GlobalLock(hMem);   
		::GetFileVersionInfo(szSrcfn, dwVerHnd, dwVerInfoSize, lpvMem);   
		::VerQueryValue(lpvMem, (LPTSTR)_T("\\"), (void**)&pFileInfo, &uInfoSize);   

		WORD nVer[4];   
		nVer[0] = HIWORD(pFileInfo->dwProductVersionMS);   
		nVer[1] = LOWORD(pFileInfo->dwProductVersionMS);   
		nVer[2] = HIWORD(pFileInfo->dwProductVersionLS);   
		nVer[3] = LOWORD(pFileInfo->dwProductVersionLS);   
		strVersion.Format(_T("%d.%d.%d.%d"), nVer[0], nVer[1],nVer[2],nVer[3]);   

		::GlobalUnlock(hMem);   
		::GlobalFree(hMem);   
	}   

	return strVersion;   
}


  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值