TSINGSEE青犀視訊自主研發H265播放器EasyPlayerPro-Win C++如何獲取軟體版本資訊原始碼
阿新 • • 發佈:2020-12-15
在軟體開發中,不管是個人還是企業,軟體版本的控制都是一件重要的事,沒有版本控制系統的話,程式碼可能會被覆蓋或遺失,也有可能被外人篡改,無法恢復到原本的程式碼。
有了版本控制系統,開發人員只要將每次的程式碼變更都記錄起來留檔,並且可以通過版本控制系統中進行更新,也可以通過瀏覽所有開發的歷史紀錄,掌握團隊的開發進度。
本文介紹下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青犀視訊官方網站了解。