В серьёзных проектах со сжатыми сроками надо стараться использовать методы, которые принесут поменьше сюрпризов. То есть, методы хорошо знакомые и проверенные. Но это не всегда получается. А иногда можно было бы воспользоваться известным методом, но что-то зачесалось и потянуло на эксперименты. Не надо так.

Задача была простая -- в начале выполнения программы удалить файл. Как это сделать? Можно было бы сделать system("del file.txt"). А можно было бы воспользоваться простой советской функцией Win32 API -- DeleteFile. Но я вспомнил, что буквально на днях видел класс CFile. И там была статическая функция, которая удаляет файл.

Ничтоже сумняшеся я написал CFile::Remove("file.txt") и успокоился. Первый раз сработала, второй раз сработала. А на третий я сделал перезапуск особым образом -- и произошла ситуация, при которой файла уже не было. Что же сделала эта функция, не обнаружив удаляющегося файла? Подсказка: функция оказалась типа void.

Она вывела на экран диалоговое окно! В котором сообщила, что файла, который я хочу удалить, нету. Ну спасибо.

У меня программа должна всё автоматически делать, а тут она повисла и ждёт, пока кто-нибудь закроет окно. А... как вообще предполагалось, что программа узнает, что удалить файл не удалось? Для каких же целей подойдёт эта функция? И для каких целей её делали разработчики?

В общем, не рекомендую.