zoukankan      html  css  js  c++  java
  • TSINGSEE青犀视频自主研发H265播放器EasyPlayerPro-Win C++如何获取软件版本信息源码

    在软件开发中,不管是个人还是企业,软件版本的控制都是一件重要的事,没有版本控制系统的话,代码可能会被覆盖或遗失,也有可能被外人篡改,无法恢复到原本的代码。

    有了版本控制系统,开发人员只要将每次的代码变更都记录起来留档,并且可以通过版本控制系统中进行更新,也可以通过浏览所有开发的历史纪录,掌握团队的开发进度。

    本文介绍下TSINGSEE青犀视频自主研发的H265视频播放器EasyPlayerPro-Win如何获取版本信息源码。EasyPlayerPro-Win C++软件版本信息定义如下,当前版本为3.2.19.106。

    有时版本信息不会显示,则需要调取以下代码:

    void CLivePlayerDlg::GetApplicationVersion(wchar_t *pVersion)
    {
        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, TEXT("\"), (void**)&pFileInfo, &uInfoSize);
           
            int ret = GetLastError();
            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("EasyPlayerPro V%d.%d.%d%d"),m_nProdVersion[0],
                m_nProdVersion[1],m_nProdVersion[2],m_nProdVersion[3]);
           
            GlobalUnlock(hMem);
            GlobalFree(hMem);
           
    		wcscpy(pVersion, strVersion);
        }
    }
    

    其中数组m_nProdVersion[4]中即为获取版本的四段值,调试模式下结果如下图:

    EasyPlayer播放器系列项目依赖其灵活控制、低延时、高稳定的特点,已经成熟运用于多个项目场景当中,其中包括手机直播、桌面直播、远程教育课堂直播等,同时在城市安防或者社区安防监控的视频播放当中也具备很好的兼容性。

    如果大家还想了解更多相关内容,欢迎咨询我们或着访问TSINGSEE青犀视频官方网站了解。

  • 相关阅读:
    对scrapy经典框架爬虫原理的理解
    js的处理技巧
    网站登陆的两种方法
    scrapy批量下载图片
    [转]解决scrapy下载图片时相对路径转绝对路径的问题
    scrapy爬取西刺网站ip
    logging的使用方法
    scrapy中的response
    scrapy中的request
    scrapy.Spider的属性和方法
  • 原文地址:https://www.cnblogs.com/TSINGSEE/p/14140038.html
Copyright © 2011-2022 走看看