BUG: فشل StretchBlt()/StretchDIBits() مع تمدد الكبيرة جداً

هام: تمت ترجمة هذا المقال باستخدام برنامج ترجمة آلية لشركة مايكروسوفت بدلاً من الاستعانة بمترجم بشري. تقدم شركة مايكروسوفت كلاً من المقالات المترجمة بواسطة المترجمين البشر والمقالات المترجمة آليًا وبالتالي ستتمكن من الوصول إلى كل المقالات الموجودة في قاعدة المعرفة الخاصة بنا وباللغة الخاصة بك. بالرغم من ذلك، فإن المقالة المترجمة آليًا لا تكون دقيقة دائمًا وقد تحتوي على أخطاء إملائية أو لغوية أو نحوية، مثل تلك الأخطاء الصادرة عن متحدث أجنبي عندما يتحدث بلغتك. لا تتحمل شركة مايكروسوفت مسئولية عدم الدقة أو الأخطاء أو الضرر الناتج عن أية أخطاء في ترجمة المحتوى أو استخدامه من قبل عملائنا. تعمل شركة مايكروسوفت باستمرار على ترقية برنامج الترجمة الآلية

اضغط هنا لرابط المقالة باللغة الانجليزية111865
تمت أرشفة هذه المقالة. وتظهر "كما هي" ولن يتم تحديثها بعد الآن.
3.00 3.10 kbbuglist kbprg WINDOWS
الأعراض
إذا كانت عامل stretching كبيرة على سبيل المثال، عند بتمديدها من جداً صغيرة إلى كبيرة الارتفاع، StretchDIBits()StretchBlt() قد بإرجاع صفر (0) و تعرض أي شيء. يتم عرض الصورة النقطية نفسها مع توسيع أصغر بشكل صحيح.
السبب
معظم برامج تشغيل لا تطبيق الخاصة بهم StretchBlt() أو StretchDIBits() لذا يجب أن محاكاة GDI هذه الاستدعاءات. يتضمن جزء من محاكاة GDI تخصيص المخازن المؤقتة عمل مؤقتة على 64 كيلو. إذا كان يتم حساب حجم المخزن المؤقت العمل بحيث يكون أكبر من 64 كيلو بايت, ثم ارتفاع المستطيلات المصدر والوجهة يتم halved حتى تكون أقل من 64 كيلو بايت. تكون المشكلة أن إذا GDI يجب أن بالمتابعة، قسمة الارتفاع عمودين (2) الحصول على المخزن مؤقت أقل من 64 كيلو بايت ارتفاع المصدر أو الوجهة قد أخيراً الوصول سطر الفحص واحد. في هذه المرحلة، يفشل المكالمة لأنه لا يمكن خط المسح الضوئي إلى subunits.

StretchBlt() و StretchDIBits() غير مصممة لتوفير بتمديدها غير محدود. ومع ذلك، فإنها قد تفشل قبل الأوان المزيد من قيود التصميم الخاصة بهم.
الحل
في حال على توسيع كبيرة StretchBlt() أو StretchDIBits() تطبيق يمكن تقسيم لأعلى الصورة النقطية مصدر تمدد القطع بشكل فردي و موضعها بشكل صحيح مرة واحدة تمدد. البديل آخر للقيام بتوسيعه أصغر. لا توجد أية صيغة لتحديد ما يؤدي الصور النقطية فشل ما هو حجم تمدد.
تصريح
أقرت Microsoft أن هذا خطأ في منتجات Microsoft المسردة في بداية هذه المقالة.
معلومات أخرى
إعادة إنشاء المشكلة, إنشاء صورة نقطية تقريباً ٢٠٤٨ بكسل × 16 بكسل عالية. ثم عرض صورة نقطية مع نموذج DIBVIEW من SDK Windows 3.1. اختر "تمدد إطار" من قائمة خيارات الخاص DIBVIEW ، بحيث يتم تمديد الصورة النقطية استناداً إلى حجم إطار العميل. عندما يكون الارتفاع بكسل أكثر من 200 حوالي, لن يتم عرض الصورة النقطية.
تكبير/تصغير الفشل buglist3.10 3.00 3.10 buglist3.00

تحذير: تمت ترجمة هذه المقالة تلقائيًا

خصائص

رقم الموضوع: 111865 - آخر مراجعة: 01/11/2015 00:50:15 - المراجعة: 2.1

Microsoft Windows Software Development Kit 3.0, Microsoft Windows Software Development Kit 3.1

  • kbnosurvey kbarchive kbmt kbbug kbpending KB111865 KbMtar
تعليقات