我使用__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