У меня иногда возникала такая проблема с нарушением прав доступа в старых проектах Delphi или C ++ Builder.Сегодня у меня было это с C ++ Builder.Во время сбоя, глядя в окно Debug -> Call Stack, я вижу, что это происходит внутри вызова fflush, вызываемого __exit_streams и _exit.
Я не уверен, что является причиной этого, так как он настолько глубоко в коде библиотеки Borland, но, кажется, он приходит и уходит наугад, когда код изменяется.И, похоже, это чаще встречается в приложениях с несколькими формами.
На этот раз ошибка исчезла, когда Я только что добавил новую кнопку на главной форме.Кнопка, которая просто есть, не имеет обработчиков событий и ничего не делает.Я думаю, что любое случайное изменение кода, классов, переменных и т. Д. Приводит к изменению структуры памяти при повторной привязке приложения, и это либо вызывает, либо не вызывает ошибку.
Пока я просто оставляю новую кнопку наформа, установите его "невидимым", чтобы не было видимых изменений.Кажется, это работает, но для меня это достаточно хорошее решение.