هل المحتلة 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
من بين مجموعة واسعة النظام الذي هو <وأ href = "http://blogs.technet.com/markrussinovich/archive/2009/03/26/3211216.aspx" يختلط = "نوفولو noreferrer" > تقتصر عادة لحوالي 200 ميغابايت على إصدارات 32 بت من نظام التشغيل Windows.
منذ WinNT4.0 CreateBitmap () API يخصص الصورة النقطية في مقسم إلى صفحات وضع kernel الذاكرة . في WinNT4 كان من المستحيل إنشاء الصور النقطية أكبر من 48 MB.
وماذا كان الحد الخاص بك؟