Всякий раз, когда я выхожу из своей программы, это выдает мне исключение: «0xC0000022: процесс запросил доступ к объекту, но ему не были предоставлены эти права доступа».
Он прерывается прямо в конце функцииназывается _lock_file в _file.c.
После попытки выяснить, в чем причина проблемы, я обнаружил, что она не падает, если я удаляю все вызовы функций fclose () в моей программе, а затем очищаю и перестраиваюпрограмма.Даже если сама функция никогда не вызывается, она все равно завершится сбоем.Очевидно, что это решение не является идеальным.
Когда я попытался использовать вместо него fstream, при запуске программы происходил похожий сбой.
Стоит также упомянуть, что моя программа использует SDL.
Редактировать: Кто-то запросил минимальный пример, и это то, с чем я могу связаться.
main.cpp
#include <stdlib.h>
#include <SDL.h>
/*...*/
#pragma comment(lib, "SDL.lib")
#pragma comment(lib, "SDLmain.lib")
/*...*/
int main( int argc, char **argv)
{
if(false)
fclose(NULL);
return 0;
}
draw.cpp
/*...*/
Если я запустлю это, он выйдет из строя при выходе, как я уже упоминал выше.И да, файл draw.cpp полностью закомментирован, но если я удалю его из проекта, программа будет работать нормально.Все остальные файлы были удалены из проекта.
Edit2: В ответ на karlphillip я решил перепроверить, действительно ли он запущен, и кажется, что он действительно падает в начале этого примера.
Также это проект Win32.