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 相关
[编辑]宏
[编辑]有几个宏会影响 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 之类的东西。