[Win32 API] File Version 확인
저장소/VC++파일 버전만 필요로 할 때가 있으려나...
간단한 파일 버전 확인 방법을 정리한다.
버전 확인 외에 다른 용도는 없는 것 같기도 하고...
버전만 확인할 때 쓰면 되겠다.
간단한 파일 버전 확인 방법을 정리한다.
#includeVerQueryValue의 두 번째 인자인 lpSubBlock의 다른 사용 예로 VS_FIXEDFILEINFO 를 얻어 버전 정보를 확인할 수 있다.#pragma comment(lib, "version.lib") int GetFileVersion(LPCTSTR _lpszFilePath, LPTSTR _lpszBuf, DWORD _cchBuf) { if( NULL == _lpszFilePath || NULL == _lpszBuf ) { return -1; } DWORD dwHandle = 0; DWORD dwSize = 0; dwSize = ::GetFileVersionInfoSize(_lpszFilePath, &dwHandle); if(0 == dwSize) return -1; BYTE* pBlockData = new BYTE[dwSize]; ZeroMemory(pBlockData, dwSize); if(FALSE == ::GetFileVersionInfo(_lpszFilePath, dwHandle, dwSize, pBlockData)) { delete [] pBlockData; return -1; } // File Version VS_FIXEDFILEINFO* pVerInfo = NULL; UINT uLen = 0; if(FALSE == ::VerQueryValue(pBlockData, _T("\\"), (LPVOID*)&pVerInfo, &uLen)) { delete [] pBlockData; return -1; } StringCchPrintf(_lpszBuf, _cchBuf, _T("%d.%d.%d.%d"), HIWORD(pVerInfo->dwFileVersionMS), // Major LOWORD(pVerInfo->dwFileVersionMS), // Minor HIWORD(pVerInfo->dwFileVersionLS), // Release LOWORD(pVerInfo->dwFileVersionLS)); // Test delete [] pBlockData; return 0; }
버전 확인 외에 다른 용도는 없는 것 같기도 하고...
버전만 확인할 때 쓰면 되겠다.
'저장소 > VC++' 카테고리의 다른 글
Visual C++ 컴파일러 버전 (0) | 2011.04.29 |
---|---|
Delay Load 관련 내용 (0) | 2011.04.27 |
[Win32 API] File Information 확인 (1) (0) | 2011.02.22 |
[Win32 API] 가변인자 처리 방식, 그리고 오류 (0) | 2011.02.14 |
[MFC] Modaless Dailog - Itself destroy (0) | 2011.02.14 |