Я использую макрос __FILE__
для сообщений об ошибках. Однако иногда путь возвращается как E:\x\y\/z.ext
. Это делается для определенных файлов.
Например, E:\programming\v2\wwwindowclass.h
возвращается как E:\programming\v2\/wwwindowclass.h
, а E:\programming\v2\test.cpp
возвращается как E:\programming\v2\test.cpp
. Фактически, единственный файл в каталоге, который работает, кажется test.cpp
.
Чтобы обойти это, я использовал ответ jmucchiello на этот вопрос , чтобы заменить любое вхождение "/" на "\". Это работало нормально, и отображаемый путь изменился на нормальный.
Проблема была, когда я попробовал это на Windows 7 (после использования XP). Строка появилась как (null)
после вызова функции.
Наряду с этим я иногда получаю некоторые, казалось бы, случайные error 2: File not found
ошибки. Я не уверен, связано ли это вообще, но если есть объяснение, было бы приятно услышать.
Я пытался выяснить, почему __FILE__
будет возвращать неправильную строку, но безрезультатно. Я использую GNU g ++ 4.6.1. На самом деле я еще не уверен, были ли неправильные пути в XP неправильными и в Windows 7. Любое понимание приветствуется.