سؤال

وأنا حاليا بالتحقيق مشكلة مع عنصر 3rd الطرف (DevExpress) في طلبي. بلدي المسألة هي مماثلة تماما لهذا واحد DevExpress KB المقالة . أحصل على نفس استثناء مع أكثر أقل نفس تتبع مكدس الذاكرة المؤقتة. لذلك تستخدم. NET العاكس لمعرفة ما يمكن أن يكون لاغيا في هذا السيناريو، والكائن الوحيد الذي هو candiate أن يكون لاغيا والرسومات. يتم إنشاء هذا مع Graphics.FromHwnd (IntPtr.Zero). لأنني لم يكن لديك معرفة واسعة حول GDI، وأود أن أعرف ما إذا كان شخص ما يمكن أن تقول لي السيناريوهات المحتملة عند هذا قد يعود لاغية ...

وحاولت إعادة إنتاجه في سيناريو حيث windows هو من GDI مقبض، ولكن بعد ذلك أنا اتلقى "من مقابض" - باستثناء مرة واحدة على الأقل، وليس هذا هو الحال في قضية أنا التحقيق

وتيا، مارتن

هل كانت مفيدة؟

المحلول

ومن ما أذكر، وهو HWND 0 (على نحو فعال IntPtr.Zero) هو مؤشر إلى سطح المكتب جلسة عمل المستخدم الحالية. ويمكن استخدامه لقياس مقاييس مختلفة من النظام ويجب أن تكون قيمة صالحة للGraphics.FromHwnd.

ومع ذلك، GDI + هو المليء بالأخطاء والتكامل. NET معها غير مستقر لذلك فمن الممكن جدا لا يوجد شيء خاطئ مع التعليمات البرمجية أو DevExpress البعض من أنه يستخدم فقط GDI +.

نصائح أخرى

وأولا وقبل كل شيء، كنت تستخدم بنية IntPtr وتهيئة إلى الصفر. ثم يتم تمرير هذا المؤشر إلى فئة الرسومات. لم يكن لديك نافذة مع handle == 0، قيمة null هو بالضبط ما كنت تتوقع.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top