Pergunta

Eu estou usando o seguinte código para criar um DC compatível:

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);
}

A minha pergunta é se CDC CBitmap ocupada memória? Se ele está usando memória, por que ficar ruim resultado quando rect.width e rect.height são grandes. (Há memória suficiente). Alguém disse que está usando memória na placa de vídeo. É verdade. Eu não estou muito certo sobre isso.

Foi útil?

Solução

Memória em CreateCompatibleBitmap são alocadas de um pool de todo o sistema que de normalmente limitada para cerca de 200 Megabytes em versões de 32 bits do Windows.

memória Desde WinNT4.0 CreateBitmap () aloca API do bitmap em modo de kernel paginado . Em WinNT4 era impossível criar bitmaps maior do que 48 MB.

Qual foi o seu limite?

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top