<windows.h>
小写和大写<Windows.h>
标题有什么区别?我正在阅读一些关于 Win32 编程的旧教程,它们都使用小写的“w”。代码编译良好,但 VS 2012 自动完成功能仅列出<Windows.h>
标题。
3 回答
Windows 上的文件系统不区分大小写,因此在 Windows 上编译时任何一个都可以工作。但是,例如,如果您要在 Linux 上使用 MinGW 交叉编译器进行编译,则情况很重要。
MinGWwindows.h
标头似乎总是小写。
Windows.h
微软工具提供的文件已经使用了多种案例。
- 旧的 VC++ 安装(VC++98 和更早版本)似乎可以安装
WINDOWS.H
- 全部大写 - 较新的 VC++ 安装和 Windows SDK 似乎使用
Windows.h
- 一些移动设备 SDK(PocketPC 或 Windows mobile)使用
windows.h
- 全部小写。
由于windows.h
将始终在 Windows 和 Linux 交叉编译上工作,#include <windows.h>
如果我考虑过,我会使用它。在回答这个问题之前,我不记得做了什么。
I wouldn't worry about this too much. Even if the capitalized form finds its way onto a Linux MinGW build, an easy (if maybe annoying) fix is to create a Windows.h
file that just turns around and includes windows.h
.
没有区别,也不可能因为 Windows (NTFS) 上的文件名不区分大小写。
实际上,根据文件名在 NTFS 卷上区分大小写,NTFS 有两种不同的模式,其中一种区分大小写:
NTFS 支持两种略有不同的操作模式,可以由与 NTFS 交互的应用程序的子系统选择。第一个是完全区分大小写的,如果要选择磁盘上的文件,则要求应用程序提供的文件名与存储在磁盘上的名称匹配,包括大小写。第二种操作模式是保留大小写但不区分大小写。这意味着即使提供的名称与存储在磁盘上的名称不同,应用程序也可以选择磁盘上的文件。请注意,两种模式都会保留用于创建文件的大小写。此处提到的行为差异仅适用于应用程序需要定位现有文件的情况。POSIX 利用完全区分大小写模式,而 MS-DOS、WOW 和 Win32 子系统使用不区分大小写模式。
这些是完全相同的文件 Windows 文件系统不区分大小写