"If the file is a read-only file, the function fails with ERROR_ACCESS_DENIED." почему же тогда lastError вернуло 0?
может оригинальный код не совсем такой как скопипащен сюда, либо бага в винде. У меня, например, нормально:
C++ (Qt)
BOOL f = DeleteFile(L"F:\\url.txt");
qDebug() << f << GetLastError();
печатает
0 5
где 5 - ERROR_ACCESS_DENIED