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は、カーネルモードのページメモリにビットマップを割り当てます。 WinNT4では、48 MBを超えるビットマップを作成することはできませんでした。
限界は何ですか?
所属していません StackOverflow