我正在VS2010中开发并希望将代码添加到现有项目中。 顺便说一下,这是一个Win32 / MFC。
我忍不住注意到在MyClass类中(在这种情况下,MyClass是CDialog类的扩展),cpp文件的顶部包含以下内容:
#include "MyClass.h"
#include ".\myclass.h"
我注意到第二个包含是在没有大小写的情况下输入的,但我无法弄明白为什么?
答案 0 :(得分:1)
“MyClass.h
”
将在INCLUDE_DIR路径上搜索,该路径在项目设置中定义。
“./myclass.h
”将在与当前文件相同的目录中搜索。
Windows文件名称不区分大小写,因此如果您的工作目录位于包含路径中,则这些行指向同一文件。
这种冗余可能是VS确保文件至少包含一次的一种方式......
编辑:感谢Arne Vogel,我累了并且写了虚假的东西。
您的编译器只会查找您的头文件,文件名就像#include <file.h>
但我想冗余是要与所有文件系统兼容。
答案 1 :(得分:0)
.\
说要查看当前目录。我猜测那个标题中的包含守卫,这不会有问题。
答案 2 :(得分:0)
#include "MyClass.h"
来自环境路径,而#include ".\myclass.h"
来自当前路径。
大部分时间,“MyClass.h”位于您项目下的inc目录中,但是你的MyClass.cpp位于其他路径中。