इस समस्या का परीक्षण करने के लिए मैंने एक न्यूनतम विंडोज एप्लिकेशन लिखा है। अगर मैं WM_PAINT
हैंडलर में एक्सेस उल्लंघन को मजबूर करता हूं तो यह अपवाद डीबगर को कभी नहीं मिलता है। अगर डीबगर के बिना शुरू किया गया तो एक्सेस उल्लंघन भी दिखाई नहीं देता है। आमतौर पर आपको विंडोज त्रुटि रिपोर्टिंग संवाद प्राप्त करना चाहिए।WM_PAINT में पहुंच उल्लंघन
थोड़ा गहरा खोना ऐसा लगता है कि user32.dll में कुछ आने वाले अपवादों को पकड़ता है। क्या यह सामान्य व्यवहार है? क्या मैं इसे किसी भी तरह नियंत्रित कर सकता हूं? सभी अपवादों को सुरक्षा जोखिम को पकड़ नहीं रहा है? कम से कम यह नरक के रूप में परेशान है।
यह Vista 64 पर 32- और 64-बिट अनुप्रयोग के साथ है। XP पर अपवाद को अपेक्षा के अनुसार संभाला जा रहा है। अन्य विंडोज संदेशों में एक ही समस्या है। शायद उन सभी?
WM_PAINT
हैंडलर:
case WM_PAINT:
hdc = BeginPaint(hWnd, &ps);
*(int*)0 = 0;
EndPaint(hWnd, &ps);
break;
मुझे पता है लेकिन डीबगर का उपयोग करते हुए यह केवल एक समाधान है। और विंडोज़ संदेशों को संभालने के दौरान फेंकने वाले सभी अन्य अपवादों के साथ क्या है? क्या आपके पास इस बदलाव के लिए कोई आधिकारिक (या अनौपचारिक) दस्तावेज या तर्क है? –