MemoryDC가 비디오 카드의 메모리 또는 메모리를 점유 했습니까?
문제
다음 코드를 사용하여 호환 DC를 만듭니다.
m_pDC=new CDC();
VERIFY(m_pDC->CreateCompatibleDC(sampleDC);
CBitmap bitmap;
if (bitmap.CreateCompatibleBitmap(sampleDC, rect.Width(), rect.Height()))
{
m_pOldBitmap = m_pDC->SelectObject(&bitmap);
}
내 질문은 CDC CBITMAP가 메모리를 점령 한 것입니까? 메모리를 사용하는 경우 rect.width 및 rect.Height가 클 때 왜 나쁜 결과를 얻습니까? (충분한 기억이 있습니다). 누군가는 비디오 카드에 메모리를 사용하고 있다고 말했습니다. 사실입니까? 나는 그것에 대해 잘 모릅니다.
해결책
메모리 CreateCompatibleBitmap
시스템 전체의 풀에서 할당됩니다 일반적으로 제한적입니다 32 비트 버전의 Windows에서 약 200 메가 바이트까지.
Winnt4.0 이후 CreateBitMap () API는 커널 모드 PAGED 메모리에서 비트 맵을 할당합니다. Winnt4에서는 48MB보다 큰 비트 맵을 만드는 것은 불가능했습니다.
당신의 한계는 무엇입니까?
제휴하지 않습니다 StackOverflow