У меня есть устаревшее приложение MFC, которое я помогаю поддерживать. Я не совсем уверен, как определить версию MFC, и я не думаю, что это все равно будет иметь значение.
Приложение может принимать некоторые параметры в командной строке; Я хотел бы иметь возможность установить уровень ошибок при выходе из приложения, чтобы файл bat / cmd мог проверять сбой и реагировать соответствующим образом.
Я не верю, что exit () сработает (честно говоря, еще не пробовал) из-за того, что это приложение MFC. Кто-нибудь знает, как установить уровень ошибки, возвращаемый приложением MFC? Могу я просто использовать exit ()?





В списке есть пара решений здесь, я не могу прокомментировать, какое из них лучше, но я уверен, что по крайней мере одно из них поможет вам.
Я не могу поверить в это, поэтому, пожалуйста, не пишите этот ответ.
CWinApp :: ExitInstance (); return myExitCode;
Это вернет уровень ошибки в вызывающий командный файл, чтобы вы затем оценили и отреагировали.
Мне всегда удавалось возвращать код ошибки из CWinApp :: ExitInstance. Я полагаю, что реализация по умолчанию вернет значение из сообщения о выходе. Так что вы можете использовать AfxPostQuitMessage, если это проще. Но второй способ я лично не тестировал.
Если ваше приложение отказывается обновлять ERRORLEVEL в оболочке DOS, из которой вы его запускаете, независимо от того, что вы делаете в коде своей программы, может помочь запустить ваше приложение с помощью «start / wait», чтобы оболочка была заблокирована до завершения вашей программы. .