728x90
CImage 클래스 사용 중 오류 발생
오류 위치는 아래 함수 Detach 함수 내 발생
inline HBITMAP CImage::Detach() throw()
{
HBITMAP hBitmap;
ATLASSUME( m_hBitmap != NULL );
ATLASSUME( m_hDC == NULL ); // <== 해당 위치 오류 발생
hBitmap = m_hBitmap;
m_hBitmap = NULL;
m_pBits = NULL;
m_nWidth = 0;
m_nHeight = 0;
m_nBPP = 0;
m_nPitch = 0;
m_iTransparentColor = -1;
m_clrTransparentColor = (COLORREF)-1;
m_bHasAlphaChannel = false;
m_bIsDIBSection = false;
return( hBitmap );
}
해당 오류는 ReleaseDC() 함수 호출을 하지 않아 발생된 오류로
CImage 클래스 사용 시 아래와 같이 사용법을 숙지 후 사용 하면 됩니다
void Test()
{
CImage img;
img.Create(1920, 1080);
CDC* pDC = CDC::FromHandle(img.GetDC());
// Proc....
img.ReleaseDC(); // <== img.GetDC() 함수 호출 후 필히 ReleaseDC로 할당 해제
m_SaveImg.Destroy();
}
ReleaseDC() 함수 호출 이후 정상 구동 확인
할당해제 생활화 합시다!
제 글이 도움이 되셨다면 댓글 & 공감 부탁드려요 😀
728x90
반응형
'Application > MFC' 카테고리의 다른 글
[MFC] File Read / Write Overlapped 사용법 (0) | 2024.08.08 |
---|---|
[MFC] 중복 실행 방지 (HANDLE, Event) (0) | 2024.04.09 |
[MFC] Button Text Multiline (버튼 글자 줄 바꿈) (2) | 2024.01.29 |
[MFC] Picture Control Resource Bitmap 이미지 넣기 (0) | 2024.01.24 |
[MFC] 웹 페이지 읽기 (API 읽어 오기) (0) | 2024.01.06 |