Application/MFC

[MFC] CImage 오류 : Detach()

devsalix 2024. 4. 3. 16:33
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
반응형