得到程序自身的版本号

CString CsiphelloApp::GetVersion()
{
    
if (m_version.IsEmpty()) //如果已经计算一次,则不用再算了,直接返回
    
{
        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); 

            m_version.Format(_T(
"Version %d.%d.%d.%d"),m_nProdVersion[0],
                m_nProdVersion[
1],m_nProdVersion[2],m_nProdVersion[3]);

            GlobalUnlock(hMem);
            GlobalFree(hMem);
        }

    }

    
return m_version;
}
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值