怎样获取exe,dll,ocx等PE文件的版本号


BOOL GetFileVersion(LPCTSTR strFile, CString& strVersion)   
{   
    TCHAR szVersionBuffer[4096] = _T("");   
    DWORD dwVerSize;   
    DWORD dwHandle;   
 
    dwVerSize = GetFileVersionInfoSize(const_cast(strFile), &dwHandle);   
    if (dwVerSize == 0)   
        return FALSE;   
 
    if (GetFileVersionInfo(const_cast(strFile), 0, dwVerSize, szVersionBuffer))   
    {   
        VS_FIXEDFILEINFO * pInfo;   
        unsigned int nInfoLen;   
  
        if (VerQueryValue(szVersionBuffer, _T("//"), (void**)&pInfo, &nInfoLen))  
        {  
            strVersion.Format(_T("%d.%d.%d.%d"),   
                HIWORD(pInfo->dwFileVersionMS), LOWORD(pInfo->dwFileVersionMS),   
                HIWORD(pInfo->dwFileVersionLS), LOWORD(pInfo->dwFileVersionLS));   
            return TRUE;   
        }   
    }   
 
    return FALSE;   
}

你可能感兴趣的:(VC界面相关,C/C++,VC技巧)