获取工程资源视图中VERSION文件中的软件版本号

获取工程资源视图中VERSION文件中的软件版本号

引用自http://www.youthtribe.com/archives/1739

首先工程需要引用 Version.lib,这个库。
项目》属性页》配置属性》链接器》输入》附加依赖项
debug和release都要添加

// 获取软件的版本号PRODUCTVERSION
CString GetSoftwareVersion()
	{

		TCHAR szFullPath[MAX_PATH];
		DWORD dwVerInfoSize = 0;
		DWORD dwVerHnd;
		VS_FIXEDFILEINFO * pFileInfo;

		::GetModuleFileName(NULL, szFullPath, sizeof(szFullPath));
		dwVerInfoSize = ::GetFileVersionInfoSize(szFullPath, &dwVerHnd);
		if (dwVerInfoSize)
		{
			// If we were able to get the information, process it:
			HANDLE  hMem;
			LPVOID  lpvMem;
			unsigned int uInfoSize = 0;

			hMem = GlobalAlloc(GMEM_MOVEABLE, dwVerInfoSize);
			lpvMem = GlobalLock(hMem);
			GetFileVersionInfo(szFullPath, dwVerHnd, dwVerInfoSize, lpvMem);

			::VerQueryValue(lpvMem, (LPTSTR)_T("\\"), (void**)&pFileInfo, &uInfoSize);

			WORD m_nProdVersion[4];

			// Product version from the FILEVERSION of the version info resource 
			m_nProdVersion[0] = HIWORD(pFileInfo->dwProductVersionMS); 
			m_nProdVersion[1] = LOWORD(pFileInfo->dwProductVersionMS);
			m_nProdVersion[2] = HIWORD(pFileInfo->dwProductVersionLS);
			m_nProdVersion[3] = LOWORD(pFileInfo->dwProductVersionLS); 

			CString strVersion ;
			//strVersion.Format(_T("The file's version : %d.%d.%d.%d"),m_nProdVersion[0],m_nProdVersion[1],m_nProdVersion[2],m_nProdVersion[3]);
			strVersion.Format(_T("%d.%d.%d.%d"),m_nProdVersion[0],m_nProdVersion[1],m_nProdVersion[2],m_nProdVersion[3]);

			GlobalUnlock(hMem);
			GlobalFree(hMem);

			return strVersion;
			//AfxMessageBox(strVersion);
		}
		return _T("");
	}

1、注意:必须要添加资源:Version
必须要有版本号
2、修改版本信息,其拿到的就是这个版本号。
返回的版本号

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值