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 之類的東西。