对于C ++,我是一个完整的菜鸟,我一直在试图通过Moai试图添加对Xbox 360游戏手柄的支持XInput。当我包含XInput的标题时,有两个选项:
和
此外,为了使用XInput,我需要包含windows.h
。我见过的所有示例都使用以下语法:
#include <windows.h>
但Visual C ++ Express 2010中的自动完成插入
#include <Windows.h>
在XInput / Xinput的情况下,似乎区分大小写很重要,但在Windows.h的情况下似乎并不重要。
包含头文件时区分大小写是否重要?这有什么逻辑吗?
XInput的区别仅在于有一个名为XInput
的标题和另一个名为Xinput
的标题吗?
答案 0 :(得分:4)
只有底层文件系统区分大小写才有意义。 Windows文件系统不区分大小写,但Linux等操作系统的文件系统是。尝试使用真实文件的确切实际名称,以确保在将代码从一个操作系统移植到另一个操作系统时,代码可以正常工作。
答案 1 :(得分:4)
标头名称和包含指令中的区分大小写是实现定义的。通常情况下,您所构建的平台是否区分大小写。
我必须进行测试才能确定,但我怀疑如果你键入任何种类的'xinput.h',它会找到首先出现在标题搜索路径中的那个,即使后来发生的文件也是如此在案例方面,在搜索路径中是更好的匹配。从不熟悉这些问题的开发人员的角度来看,这将是非常不直观的,因为这意味着您可以使用其中一个自动完成,然后VS将包含 选择的文件。< / p>
VS也可能比这更聪明,并且会搜索最佳案例匹配。
答案 2 :(得分:2)
在Windows上,文件名不区分大小写,并且扩展到#include
。任何情况都可以。
在某些平台(例如Linux)上,文件名 区分大小写,因此您需要匹配实际的文件名。
答案 3 :(得分:1)
Windows并不像其他人所说的那样具有案例意义。但那不是你的问题。您的问题是Visual Studio中的包含文件设置。编译器将按照它们的设置顺序查找标准头文件(使用<>
语法的头文件包含)。启动Tools->Options
,然后查找Projects and Solutions->VC++ directories
并查看Include Files
的序列。