DLL 에 있는 비트맵 리소스를 실행 파일로 가져오는 방법 3가지

반응형

DLL 에 있는 비트맵 리소스를 실행 파일로 가져오는 방법 3가지


1. FindResource() -> LoadResource() -> LockResource()

  를 이용한 방법


①  LoadLibrary() 를 이용해서 DLL 파일의 핸들값을 얻어온다.

   

 HINSTANCE hDll = NULL;
 
 hDll = LoadLibrary("ExportDll.dll");

 if(hDll == NULL) {
    MessageBox("Can't ExportDll.dll", "ResourceDll", MB_OK);
    return;
 }


②  FindResource() -> LoadResource() -> LockResource() 와

    CBrush의 객체인 CreateDIBPatternBrush를 이용해서 출력.


  HRSRC hRes;      // 비트맵 리소스 핸들
 

  // 비트맵 리소스 핸들에 대한 글로벌 영역

  HGLOBAL hData, hLockedData;  
  CBrush brush;


// 리소스 핸들을 얻어온다.
hRes = ::FindResource(hDll,

           MAKEINTRESOURCE(IDB_TOP_IMAGE), RT_BITMAP);

// 리소스 핸들 얻어오기에 성공했다면,
if(hRes != NULL) {

 

  // LoadResource 와 LockResource 실행
  if(((hData = ::LoadResource(hDll, hRes)) != NULL) &&

      ((hLockedData = (HGLOBAL)::LockResource(hData))

      != NULL)) {
 

         brush.CreateDIBPatternBrush(hLockedData,

                                                   DIB_RGB_COLORS);
         CBrush* pOldBrush = pDC->SelectObject(&brush);
         pDC->Rectangle(0, 0, 177, 47);
         pDC->SelectObject(pOldBrush);
         ::FreeResource(hLockedData);
      }
}


=======================================================


2. CBitmap 객체의 멤머함수인 Attach 를 이용하는 방법


①  LoadLibrary() 를 이용해서 DLL 파일의 핸들값을 얻어온다.

   

 HINSTANCE hDll = NULL;
 
 hDll = LoadLibrary("ExportDll.dll");

 if(hDll == NULL) {
    MessageBox("Can't ExportDll.dll", "ResourceDll", MB_OK);
    return;
 }


② CBitmap 객체의 멤머함수인 Attach 를 이용


CBitmap객체.Attach(::LoadBitmap(hDll,

                    MAKEINTRESOURCE(IDB_TOP_IMAGE)));


=======================================================


3. CBitmap 객체의 멤머함수인 m_hObject 를 이용하는 방법


①  LoadLibrary() 를 이용해서 DLL 파일의 핸들값을 얻어온다.

   

 HINSTANCE hDll = NULL;
 
 hDll = LoadLibrary("ExportDll.dll");

 if(hDll == NULL) {
    MessageBox("Can't ExportDll.dll", "ResourceDll", MB_OK);
    return;
 }


② CBitmap 객체의 멤머함수인 m_hObject 를 이용


  CBitmap객체.m_hObject = ::LoadBitmap(hDll,

                    MAKEINTRESOURCE(IDB_TOP_IMAGE)));



반응형
  • 네이버 블로그 공유
  • 네이버 밴드 공유
  • 페이스북 공유
  • 카카오스토리 공유