c++ - MemoryDC占用内存还是显卡内存?

标签 c++ mfc cdc cbitmap

我正在使用以下代码创建兼容的 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/

相关文章:

c++ - MFC C++ 在主线程上放置 1000 毫秒 sleep ?

c++ - 您知道用于编辑/翻译资源 (.rc) 文件的好程序吗?

c++ - 如何从 CDC 对象获取 HDC 对象?

c++ - 这是利用尾调用递归遍历链表的最佳方式吗?

c++ - CreateProcess 和 ShellExecute 的区别

c++ - 将打印机设备上下文另存为图像

Linux cdc_acm 设备 - 发送到设备的意外字符

c# - 如何在 C CLI 中从数组 <unsigned short> 复制到 unsigned short[]?

c++ - 如何使用 weak_ptr 构造一个包含对父对象的引用的对象?

sql-server - Azure 数据工厂中的 CDC 支持