擷取應用程式版本資訊

來源:互聯網
上載者:User

#pragma comment(lib, "VERSION.LIB")<br />int CheckVersion(LPTSTR lpszFullPath, VS_FIXEDFILEINFO *pVerInfo)<br />{<br /> BOOL bRet = 0;</p><p> DWORD dwVerHnd;<br /> DWORD dwVerInfoSize = GetFileVersionInfoSize(lpszFullPath, &dwVerHnd);<br /> if (dwVerInfoSize)<br /> {<br /> HANDLE hMem;<br /> LPVOID lpvMem;<br /> BOOL fRet;<br /> UINT cchVer = 0;<br /> VS_FIXEDFILEINFO *vInfo;</p><p> hMem = GlobalAlloc(GMEM_MOVEABLE, dwVerInfoSize);<br /> if(hMem)<br /> {<br /> lpvMem = GlobalLock(hMem);<br /> if(lpvMem)<br /> {<br /> GetFileVersionInfo(lpszFullPath, dwVerHnd, dwVerInfoSize, lpvMem);</p><p> fRet = VerQueryValue(lpvMem, TEXT("//"),<br /> (LPVOID*)&vInfo, &cchVer);<br /> memcpy(pVerInfo, vInfo, sizeof(VS_FIXEDFILEINFO));<br /> GlobalUnlock(lpvMem);<br /> bRet = 1;<br /> }<br /> GlobalFree(hMem);<br /> }<br /> }<br /> return 1;<br />}<br />

 

第二版本

#pragma comment(lib, "version.lib")<br />CString GetFileVersionInfoS(BOOL bShort = TRUE)<br />{<br /> CString SoftVersion = _T("");</p><p> TCHAR szFullPath[MAX_PATH+1] = {0};<br /> GetModuleFileName(NULL, szFullPath, MAX_PATH);</p><p> DWORD dwVerHnd = NULL;<br /> DWORD dwVerInfoSize = GetFileVersionInfoSize(szFullPath, &dwVerHnd);<br /> if(dwVerInfoSize)<br /> {<br /> LPBYTE lpvMem = new BYTE[dwVerInfoSize];<br /> memset(lpvMem, 0, dwVerInfoSize);</p><p> GetFileVersionInfo(szFullPath, dwVerHnd, dwVerInfoSize, lpvMem); </p><p> LPVOID lszVer = NULL;<br /> UINT cchVer = 0;<br /> if(VerQueryValue(lpvMem, _T("//"), &lszVer, &cchVer))<br /> {<br /> VS_FIXEDFILEINFO *pVerInfo = (VS_FIXEDFILEINFO*)lszVer;</p><p> SoftVersion.Format( _T("Version %d.%d.%d.%d "),<br /> HIWORD(pVerInfo->dwFileVersionMS), LOWORD(pVerInfo->dwFileVersionMS),<br /> HIWORD(pVerInfo->dwFileVersionLS), LOWORD(pVerInfo->dwFileVersionLS)); </p><p> SoftVersion += _T("(B");<br /> SoftVersion += __DATE__;<br /> if(!bShort)<br /> {<br /> SoftVersion += _T(" ");<br /> SoftVersion += __TIME__;<br /> }<br /> SoftVersion += _T(")");<br /> }</p><p> delete []lpvMem;<br /> }<br /> else<br /> {<br /> DWORD dwErr = GetLastError();<br /> ASSERT(0);<br /> }</p><p> return SoftVersion;<br />}

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.