我使用__FILE__
宏查看錯誤消息。但是,有時路徑會回到E:\x\y\/z.ext
。它爲特定文件執行此操作。__FILE__返回一個帶有「 /」的字符串,路徑爲
例如,E:\programming\v2\wwwindowclass.h
返回爲E:\programming\v2\/wwwindowclass.h
和E:\programming\v2\test.cpp
返回爲E:\programming\v2\test.cpp
。實際上,目錄中的唯一文件似乎是test.cpp
。
要解決這個問題,我使用jmucchiello的回答this question用「\」替換任何出現的「/」。這工作得很好,顯示的路徑變成了正常的路徑。
問題是當我在Windows 7上嘗試它(使用XP後)。調用函數後,字符串爲(null)
。
隨着這個,我有時會得到一些看似隨機的error 2: File not found
錯誤。我不確定這是否與此有關,但如果有解釋,我們會很高興聽到。
我試圖找到爲什麼__FILE__
會返回錯誤的字符串,但無濟於事。我正在使用GNU g ++ 4.6.1。我實際上並不確定如果XP中錯誤的路徑在Windows 7中也是錯誤的。任何見解都會被讚賞。
它沒有返回錯誤的字符串,它只是這是處理這個問題的許多實現定義的方法之一。通常,東西需要\\正確地轉義\,請閱讀您的操作系統的文檔,瞭解它需要的路徑名稱的方式 – PlasmaHH 2012-03-09 14:54:10
但返回的真正路徑是'E:\\ programming \\ v2 \\/wwwindowclass.h '。我沒有看到使用額外的'/'。爲什麼它會爲大多數文件做這件事,但不是'test.cpp'? – chris 2012-03-09 15:03:38
@chris:通常情況下,編譯器會在您將* #include「v2/wwwindowclass.h」傳遞給編譯器時執行此操作。由於每個文件都有自己的包含語句,因此可以(但不應該)混合這兩種樣式。 – MSalters 2012-03-09 15:27:04