我使用__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对this question的回答来用“\”替换任何出现的“/”。这工作正常,显示的路径更改为正常路径。
问题出在我在Windows 7上尝试(使用XP之后)。调用该函数后,该字符串显示为(null)
。
除此之外,我有时会看到一些看似随机的error 2: File not found
错误。我不确定这是否相关,但是如果有解释的话,听听会很好。
我试图找出为什么__FILE__
会返回错误的字符串,但无济于事。我正在使用GNU g ++ 4.6.1。我真的不确定XP中错误的路径在Windows 7中是否也是错误的。任何见解都表示赞赏。
答案 0 :(得分:1)
如果没有要进行的更改,链接问题中的函数似乎返回NULL。可能Windows 7没有遇到\/
问题(在某些情况下)。
答案 1 :(得分:0)
根据MSalters的评论:
Typically, the compiler does so when you pass #include "v2/wwwindowclass.h" to the compiler. Since every file has its own include statements, you can (but shouldn't) mix the two styles.
情况就是这样。我的编译器会自动添加正斜杠。