Этот ответ связан с другой причиной для 0xc0000142
- помещенной здесь (даже если для этого вопроса был принят другой ответ), потому что на вставках очень мало полезной информации об этой ошибке - и шокирующее отсутствие из любой полезной информации по этому вопросу от Microsoft - и поэтому чей-то поиск в Интернете может получить их здесь. (Ну, мой сделал.)
Итак: вы можете получить The application was unable to start correctly (0xc0000142)
при запуске процесса, написанного на C ++, где вы получаете доступ через нулевой указатель в конструкторе статического объекта. (В моем случае это было в инициализаторе конструктора статического объекта.)
Ваш намек на это будет событием в журнале приложения (идентификатор события 1000 источник «Ошибка приложения»), в котором есть строки, подобные следующим:
Faulting module name: unknown, version: 0.0.0.0, time stamp: 0x00000000
Exception code: 0xc0000005
Fault offset: 0x0000000000000000
0xc0000005
- это, конечно, нарушение доступа, а смещение 0 (фактически любое значение, меньшее 0x10000
, является ссылкой через нулевой указатель.
В любом случае, удивительно (для меня), что оценка статики происходит за до , которую отладчик может подключить (!!), поэтому запуск его с установленным ImageFileExecutionOptions
или даже непосредственно в Visual Studio не позволяет ты отлаживаешь эту штуку !!
(И, конечно, вы не найдете 0xc0000142
в какой-либо документации Microsoft. Отлично, команда NT!)