0

次のコードを使用して、互換性のある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が大きいと、なぜ悪い結果になるのですか。(十分なメモリがあります)。ビデオカードのメモリを使用しているとのことです。それは本当ですか。よくわかりません。

4

1 に答える 1

3

のメモリは、32ビットバージョンのWindowsでは通常約200メガバイトに制限されCreateCompatibleBitmapているシステム全体のプールから割り当てられます。

WinNT4.0以降、 CreateBitmap()APIは、カーネルモードのページメモリにビットマップを割り当てます。WinNT4では、48MBを超えるビットマップを作成することはできませんでした。

あなたの限界は何でしたか?

于 2009-08-03T07:57:06.930 に答える