MemoryDC가 비디오 카드의 메모리 또는 메모리를 점유 했습니까?

StackOverflow https://stackoverflow.com/questions/1220974

  •  10-07-2019
  •  | 
  •  

문제

다음 코드를 사용하여 호환 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보다 큰 비트 맵을 만드는 것은 불가능했습니다.

당신의 한계는 무엇입니까?

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top