如题!
我想在主窗口显示我在资源里设置的版本号,该怎么做?OCX组件也是一样获得吗?

解决方案 »

  1.   

    http://www.naughter.com/versioninfo.html
      

  2.   

    网上有编译自动增加版本号的dll,你去下载一个。。然后和versioninfo接合用
      

  3.   

    TCHAR szFullPath[MAX_PATH];
    DWORD dwVerInfoSize = 0;
    DWORD dwVerHnd;
    VS_FIXEDFILEINFO * pFileInfo;
    if(lstrlen(tcFile) <=0) return;

    //GetModuleFileName(NULL, szFullPath, sizeof(szFullPath));
        dwVerInfoSize = GetFileVersionInfoSize(tcFile, &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(tcFile, 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("%d.%d.%d.%d"),m_nProdVersion[0],
    m_nProdVersion[1],m_nProdVersion[2],m_nProdVersion[3]); SetDlgItemText(IDC_STATIC_VERSION_DISPLAY,strVersion);

    GlobalUnlock(hMem);
            GlobalFree(hMem);
    }
    else
    {
    AfxMessageBox(_T("获取文件版本信息失败!"));
    }
      

  4.   

    感谢!但如果我的组件是一个OCX,怎么获得它的路径?
    GetModuleFileName(NULL, szFullPath, sizeof(szFullPath))好像只能获得执行文件的路径吧!