2016년 3월 18일 금요일

리소스에 있는 텍스트파일 읽어오기.(Load text file from resource. MFC)

CString LoadStringFromResource(int nIDResource)
{
HINSTANCE hInst = AfxFindResourceHandle(MAKEINTRESOURCE(nIDResource), RT_HTML);

LPCTSTR lpszName = MAKEINTRESOURCE(nIDResource);
// Load the user-defined resource.
HRSRC hmdbFile = ::FindResource(hInst, lpszName, RT_HTML);
HGLOBAL hRes = ::LoadResource(hInst, hmdbFile);
DWORD dwResSize = ::SizeofResource(hInst, hmdbFile);

CString sRet;
if (hRes != NULL)
{ UINT FAR* lpnRes = (UINT FAR*)::LockResource(hRes);
LPTSTR p = sRet.GetBuffer(dwResSize+1);
strncpy(p, (char *)lpnRes, dwResSize);
p[dwResSize] = 0x00;
sRet.ReleaseBuffer( );

#ifndef WIN32 //Unlock Resource is obsolete in the Win32 API
        ::UnlockResource(hRes);
#endif
::FreeResource(hRes);

}

return sRet;
}

댓글 없음: