6

当谈到 C++ 时,我是一个完全的菜鸟,我一直在尝试通过XInput添加对 Xbox 360 游戏手柄的支持。当我包含 XInput 的标头时,有两个选项:

  1. X输入 X输入

  1. 输入 输入

此外,为了使用 XInput,我需要包含windows.h. 我见过的所有示例都使用以下语法:

#include <windows.h>

但是 Visual C++ Express 2010 中的自动完成插入

#include <Windows.h>

视窗.h

在 XInput/Xinput 的情况下,似乎区分大小写很重要,但在 Windows.h 上似乎无关紧要。

包含头文件时区分大小写是否重要?这有什么逻辑吗?

XInput 的区别仅仅是因为有一个叫做的东西的标题XInput和另一个叫做的东西Xinput吗?

4

4 回答 4

4

仅当底层文件系统区分大小写时才重要。Windows 文件系统不区分大小写,但 Linux 等操作系统的文件系统是。尝试使用真实文件的确切名称,以确保您的代码在/当您将其从一个操作系统移植到另一个操作系统时能够正常工作。

于 2012-02-26T02:48:36.063 回答
4

标头名称和包含指令中的大小写敏感性由实现定义。通常,它可以确定您正在构建的平台是否区分大小写。

我必须进行测试以确保,但我怀疑如果您键入任何种类的“xinput.h”,它会找到在标题搜索路径中首先出现的那个,即使该文件稍后出现在搜索中就大小写而言,路径是更好的匹配。从不熟悉这些问题的开发人员的角度来看,这将是非常不直观的,因为这意味着您可以使用其中一个自动完成功能,然后 VS 将包含选择的文件。

VS 也可能比这更聪明,并且会搜索最佳案例匹配。

于 2012-02-26T02:52:30.123 回答
2

在 Windows 上,文件名不区分大小写,并且扩展为#include. 任何情况都可以。

在某些平台(例如 Linux)上,文件名区分大小写,因此您需要匹配实际的文件名。

于 2012-02-26T02:47:36.220 回答
1

Windows 不像其他人所说的那样区分大小写。但这不是你的问题。您的问题在于 Visual Studio 中的包含文件设置。<>编译器将按照设置的顺序查找标准头文件(使用语法的头文件包含)。启动Tools->Options,然后查找Projects and Solutions->VC++ directories并查看Include Files.

于 2012-02-26T09:28:18.097 回答