Использование исключений без CRT
Я хочу использовать исключения в моей программе. Но моя программа имеет собственную точку входа и не использует CRT (C-runtime).
Моя программа проста, как это:
MessageBox (NULL, L "будет сгенерировано исключение", L "ок", MB_ICONEXCLAMATION | MB_OK); пытаться { бросить 123; } ловить (...) { MessageBox(NULL, L"выброшено исключение", L "ок", MB_ICONEXCLAMATION | MB_OK); }
Все отлично работает, когда я использую стандартную точку входа и CRT. Но когда я меняю EP программы, она вылетает с ошибкой "Нарушение прав доступа" при вызове функции _CxxThrowException.
Я сделал подробный скриншот аварии: http://vs712.server4u.cz/exception.png
Что вызывает эту ошибку? Есть ли обходной путь, как использовать исключения без использования CRT?
Благодарю.
1 ответ
Если ваша программа скомпилирована Visual C++. Вы ДОЛЖНЫ использовать ЭЛТ. Вы не знаете, что делает компилятор. Компилятор может вызывать любую функцию CRT в любом месте вашего кода.
Если вы действительно не хотите использовать CRT. Затем используйте другой компилятор или другой язык, например Assembly.