Frage

Ich bin mit dem folgenden Code ein kompatibles DC zu erstellen:

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

Meine Frage ist nicht CDC CBitmap Speicher belegt? Wenn es Speicher verwenden, warum bekommt es schlechtes Ergebnis, wenn rect.width und rect.height groß ist. (Es gibt genügend Speicher). Jemand sagte, es Speicher auf Grafikkarte verwendet wird. Ist es wahr. Ich bin nicht ganz sicher über sie.

War es hilfreich?

Lösung

Speicher in CreateCompatibleBitmap aus einem systemweiten Pool zugeordnet, ist typischerweise auf etwa 200 Megabytes auf 32-Bit-Versionen von Windows beschränkt .

Da WinNT4.0 Create () API teilt die Bitmap im Kernel-Modus-Speicher ausgelagert . In WinNT4 war es unmöglich, Bitmaps zu erstellen mehr als 48 MB.

Was war Ihre Grenze?

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top