में पहली Chace अपवाद हो रही मैं जब Ctrl + C खिड़कियों सांत्वना आवेदन में दबाया जाता है तो क्या जांच करने के लिए एक नमूना बनाया:क्यों C++
bool TerminationFlag=true;
int main()
{
g_hTerminateEvent = ::CreateEvent(NULL, FALSE, FALSE, NULL);
::SetConsoleCtrlHandler(ConsoleCtrlHandler, TRUE);
while(1)
{
if(TerminationFlag == false)
{
break;
}
}
return 0;
}
BOOL WINAPI ConsoleCtrlHandler(DWORD dwCtrlType)
{
if (dwCtrlType == CTRL_C_EVENT ||
dwCtrlType == CTRL_BREAK_EVENT ||
dwCtrlType == CTRL_CLOSE_EVENT)
{
TerminationFlag=false;
::SetEvent(g_hTerminateEvent);
return TRUE;
}
return FALSE;
}
मैं दृश्य में डीबगिंग विकल्प शुरू का उपयोग कर इसे चलाकर कोड का परीक्षण किया स्टूडियो जब मैं Ctrl + C दबाएं मैं निम्न संदेश 0x7c87647d
जब में
प्रथम मौका अपवाद मैं जारी रखने के विकल्प पर दबाता हूं, मेरा कोड लाइन
TerminationFlag=false;
पर आता है, भले ही मैंने नियंत्रण हैंडलर में Ctrl + C को संभाला है। क्या आप कृपया मुझे बता सकते हैं कि समस्या क्या है?
जब पहला मौका अपवाद होता है, तो यह देखने के लिए अपवाद रिकॉर्ड देखें कि क्या उठाया जा रहा है और क्यों। –
@ रेमंड कैसे अपवाद रिकॉर्ड सर को देखने के लिए? – Dany
अपवाद रिकॉर्ड अपवाद हैंडलर को पास किए गए 'EXCEPTION_POINTERS' का हिस्सा है। वर्तमान अपवाद रिकॉर्ड दिखाने के लिए कुछ डिबगर्स के पास एक विशेष कमांड होता है। (उदाहरण के लिए, विंडबग '.ecxr' का उपयोग करता है।) –