Windows.h

此條目没有列出任何参考或来源。 (2022年1月13日)
維基百科所有的內容都應該可供查證。请协助補充可靠来源以改善这篇条目。无法查证的內容可能會因為異議提出而被移除。

|

windows.h是在可在C和C++中使用的仅用于Windows的头文件，其中包含所有Windows API中函数的声明、程序员常用的Windows宏和各种函数所要使用到的数据类型和子系统。它定义了大量可在C和C++中使用的适用于Windows的特定函数。在源文件中添加windows.h头文件并将其链接到对应的lib中，就可以将Win32 API包含到项目里边。假如你要使用***.dll中所包含的函数，那么你就应该将程序链接到***.lib中（在MinGW中，这个扩展将会变为***.dll.a）。一些头文件不会与.dll 关联，而与静态库关联（例如scrnsave.h 需要scrnsave.lib）。

## 包含的头文件

[编辑]

windows.h中本身包含许多子头文件。由于它们之间特殊的依赖关系，这些子头文件很多都不能被程序单独地包含（它们不是自包含的）。

下面是Windows.h头文件中可能包含的头文件与它们各自的作用的一个对照：

* excpt.h -异常处理
* stdarg.h -变量参数函数（也是标准 C 头文件）
* windef.h -各种宏和类型
* winnt.h -各种宏和类型（适用于Windows NT ）
* basetsd.h -各种类型
* guiddef.h - `GUID`类型
* ctype.h -字符分类（标准 C 标头）
* string.h -字符串和缓冲区（标准 C 标头）
* winbase.h - kernel32.dll ：内核服务； advapi32.dll ：内核服务（例如CreateProcessAsUser 函数），访问控制（例如AdjustTokenGroups 函数）。
* winerror.h - Windows 错误代码
* wingdi.h - GDI （图形设备接口）
* winuser.h - user32.dll ：用户服务
* winnls.h - NLS（本地语言支持）
* wincon.h -控制台服务
* winver.h -版本信息
* winreg.h - Windows 注册表
* winnetwk.h - WNet（Windows 网络）
* winsvc.h - Windows 服务和SCM （服务控制管理器）
* imm.hhh - IME （输入法编辑器）

### 额外包括的

[编辑]

* cderr.h - `CommDlgExtendedError`函数错误代码
* commdlg.h -常用对话框
* dde.h - DDE （动态数据交换）
* ddeml.h - DDE 管理库
* dlgs.h -常用对话框的各种常量
* lzexpand.h - LZ (Lempel-Ziv) 压缩/解压缩
* mmsystem.h - Windows 多媒体
* nb30.h - NetBIOS
* rpc.h - RPC （远程过程调用）
* shellapi.h - Windows Shell API
* wincrypt.h -加密 API
* winperf.h -性能监控
* winresrc.h -用于资源
* winsock.h - Winsock （Windows 套接字），1.1 版
* winspool.h -打印后台处理程序
* winbgim.h -标准图形库

### OLE 和 COM 相关

[编辑]

* ole2.h - OLE （对象链接和嵌入）
* objbase.h - COM （组件对象模型）
* oleauto.h - OLE 自动化
* olectlid.h -各种GUID定义

## 宏

[编辑]

有几个宏会影响 windows.h 的行为。

* UNICODE -定义后，这会导致TCHAR直接成为WCHAR而不是CHAR的同义词，并且所有使用文本的类型通用 API 函数和消息都将定义为 -W 版本而不是 -A 版本。 （它类似于 Windows C 运行时的 _UNICODE 宏。 )
* RC_INVOKED -在资源编译器 (RC. EXE) 正在使用，而不是 C 编译器。
* WINVER -用于启用仅在较新操作系统中可用的功能。对于 Windows XP将其定义为 0x0501，对于Windows Vista将其定义为 0x0600。
* WIN32_LEAN_AND_MEAN -用于减小头文件的大小并加快编译速度。不包括密码学、 DDE 、 RPC 、 Windows Shell和Winsock 之类的东西。

## 补充

[编辑]

* Windows.pas