क्यों इस कार्यक्रम सही ढंग से संदेश बॉक्स प्रदर्शित करता है, लेकिन त्रुटि स्तर निर्धारित नहीं करता है?Winmain त्रुटि त्रुटि क्यों सेट नहीं करता है?
int APIENTRY _tWinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPTSTR lpCmdLine,
int nCmdShow)
{
MessageBox(NULL, _T("This should return 90 no?"), _T("OK"), MB_OK);
return 90;
}
मैंने ऊपर दिए गए कोड को ए.एक्सई नामक निष्पादन योग्य नाम से संकलित किया। मैं कमांड प्रॉम्प्ट में ऐसा किया:
c:\> a.exe
(message box is displayed, I press ok)
c:\> echo %ERRORLEVEL%
0
मैं एक ही परिणाम प्राप्त अगर मैं सही वापसी से पहले exit(90);
का उपयोग करें। यह अभी भी 0
कहता है।
मैं भी CreateProcess
के माध्यम से कार्यक्रम शुरू करने और GetExitCodeProcess
साथ परिणाम प्राप्त करने के लिए करने की कोशिश की लेकिन यह भी मेरे लिए 0
देता है। मैंने यह सुनिश्चित करने में त्रुटि जांच की कि यह सब ठीक से शुरू हुआ था।
मैं मूल रूप से एक अधिक जटिल कार्यक्रम में इस समस्या को तो मैं समस्या को सत्यापित करने के लिए इस साधारण प्रोग्राम बनाया देखा। परिणाम समान हैं, WinMain
दोनों प्रोग्राम हमेशा 0
लौटाते हैं।
मैं दोनों x64, x86 और यूनिकोड और संकलन विकल्प MBCS की कोशिश की। सभी 0
को त्रुटि स्तर/स्थिति कोड के रूप में दें।
winegcc और इसके साथ परीक्षण किया मेरे सिस्टम पर 90 ($ के साथ परीक्षण?) देता है। शायद कुछ खोल मुद्दा? –
मैं उपयोग कर रहा हूँ MSVC++ 2005 –
मैं इसे एक खोल मुद्दा है क्योंकि मैं भी एक और app से प्रक्रिया शुरू कर दी और CreateProcess/WaitForSingleObject/GetExitCodeProcess इस्तेमाल किया –