2009-08-03 63 views
0

我使用下面的代码来创建一个兼容DC:MemoryDC占用内存或视频卡上的内存吗?

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很大时会得到不好的结果。 (有足够的内存)。有人说它在显卡上使用内存。这是真的吗?我对此不太确定。

回答

3

CreateCompatibleBitmap中的内存从32位版本的Windows上的系统范围池(typically limited)分配到大约200兆字节。

Since WinNT4.0 CreateBitmap()API在内核模式分页内存中分配位图。在WinNT4中,不可能创建大于48 MB的位图。

你的限制是什么?

+3

.....为什么给jia3ep -2没有任何评论? 有更好的回答? – user25749 2009-08-03 08:24:57