Application/MFC

[MFC] 실행 파일 버전 가져오기

devsalix 2023. 2. 17. 10:25
728x90

우선 Class의 헤더 파일에 lib 파일 추가와 변수를 선언해 줍니다

 

#pragma comment(lib,"version.lib")

class CMyClass
{
	....
    CString m_strVersion;
}

 

그 후 소스 파일에서 아래와 같이 함수를 작성하면

 

m_strVersion 변수에 현재 파일의 버전을 가져올 수 있습니다

 

void CMyClass::GetVersion()
{
	m_strVersion.Empty();

	WCHAR szPath[MAX_PATH];

	GetModuleFileName(AfxGetInstanceHandle(), szPath, sizeof(szPath));

	DWORD dwVersionHandle;
	DWORD dwVersionInfoSize = GetFileVersionInfoSize(szPath, &dwVersionHandle);

	HANDLE hMemory = GlobalAlloc(GMEM_MOVEABLE, dwVersionInfoSize); 
	LPVOID pInfoMemory = GlobalLock(hMemory);

	GetFileVersionInfo(szPath, dwVersionHandle, dwVersionInfoSize, pInfoMemory);
	
	WCHAR *pData = NULL;
	UINT iSize = 0;
	
	if(VerQueryValue(pInfoMemory, _T("\\StringFileInfo\\041204b0\\FileVersion"), (void **)&pData, &iSize))
	{
		m_strVersion.Format(_T("%s"), pData);
	}

	GlobalUnlock(hMemory); 
	GlobalFree(hMemory);
}

 

 


제 글이 도움이 되셨다면 댓글 & 공감 부탁드려요 😀

 

 
728x90
반응형