我正在使用以下代码创建兼容的 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
中的内存是从系统范围的池中分配的 typically limited在 32 位版本的 Windows 上增加到大约 200 兆字节。
Since WinNT4.0 CreateBitmap() API 在内核模式分页内存中分配位图。在 WinNT4 中,不可能创建大于 48 MB 的位图。
你的极限是多少?
关于c++ - MemoryDC占用内存还是显卡内存?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1220974/