본문 바로가기

IT노트(구)/C/C++

(MFC) 리소스를 파일로 출력하는 예제

MFC에서 특정 리소스를 파일로 출력하려면

다음과 같이 처리하면 됩니다.[여기서 핵심은 MAKEINTRSOURCE() 매크로를 통해 리소스 아이디를 출력하는 부분인 것 같습니다!]

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
HINSTANCE hInstance = AfxGetInstanceHandle();
    
HRSRC hRsrc = FindResource(hInstance, MAKEINTRESOURCE(IDR_CUSTOM_FILE1), _T("CUSTOM_FILE")); // 리소스 아이디, 리소스 형식 입력
if(hRsrc == NULLreturn FAIL;
 
HANDLE hRes = LoadResource(hInstance, hRsrc);
if(hRes == NULLreturn FAIL;
 
LPSTR lpRes = (LPSTR)LockResource(hRes);
if(lpRes == NULLreturn FAIL;
 
CFile file;
if(!file.Open(_T("c:\\temp\\test.zip"), CFile::modeCreate | CFile::modeWrite | CFile::typeBinary | CFile::shareDenyNone)) // 파일명 입력
return FAIL;
 
file.Write(lpRes, SizeofResource(hInstance, hRsrc)); // 리소스를 파일로 저장
file.Close();
cs