1 概述
Win32程序的開頭都可看到:
#include <windows.h>
WINDOWS.H是一個最重要的頭文件,它包含了其他Windows頭文件,這些頭文件的某些也包含了其他頭文件。這些頭文件中最重要的和最基本的是:
WINDEF.H 基本數據類型定義。
WINNT.H 支持Unicode的類型定義。
WINBASE.H Kernel(內核)函數。
WINUSER.H 用戶界面函數。
WINGDI.H 圖形設備接口函數。
這些頭文件定義了Windows的所有資料型態、函數調用、資料結構和常數識別字,它們是Windows文件中的一個重要部分。
文件路徑 Windows 64位系統:
C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Include[Windows 7 SDK]
C:\Program Files (x86)\Windows Kits\8.0\Include\um [Windows 8 SDK]
C:\Program Files (x86)\Windows Kits\8.1\Include\um [Windows 8.1 SDK]
不同版本的SDK位置不一樣,x86的在C:\Program Files\ 相應的SDK下。
2 文件內容
/** * @file windows.h * Copyright 2012, 2013 MinGW.org project * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), * to deal in the Software without restriction, including without limitation * the rights to use, copy, modify, merge, publish, distribute, sublicense, * and/or sell copies of the Software, and to permit persons to whom the * Software is furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice (including the next * paragraph) shall be included in all copies or substantial portions of the * Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * DEALINGS IN THE SOFTWARE. */ /* Written by Anders Norlander <anorland@hem2.passagen.se> */ #ifndef _WINDOWS_H #define _WINDOWS_H #pragma GCC system_header #include <_mingw.h> /* translate GCC target defines to MS equivalents. Keep this synchronized with winnt.h. */ #if defined(__i686__) && !defined(_M_IX86) #define _M_IX86 600 #elif defined(__i586__) && !defined(_M_IX86) #define _M_IX86 500 #elif defined(__i486__) && !defined(_M_IX86) #define _M_IX86 400 #elif defined(__i386__) && !defined(_M_IX86) #define _M_IX86 300 #endif #if defined(_M_IX86) && !defined(_X86_) #define _X86_ #elif defined(_M_ALPHA) && !defined(_ALPHA_) #define _ALPHA_ #elif defined(_M_PPC) && !defined(_PPC_) #define _PPC_ #elif defined(_M_MRX000) && !defined(_MIPS_) #define _MIPS_ #elif defined(_M_M68K) && !defined(_68K_) #define _68K_ #endif #ifdef RC_INVOKED /* winresrc.h includes the necessary headers */ #include <winresrc.h> #else #include <stdarg.h> #include <windef.h> #include <wincon.h> #include <winbase.h> #ifndef NOGDI #include <wingdi.h> #endif #include <winuser.h> #include <winnls.h> #include <winver.h> #include <winnetwk.h> #include <winreg.h> #include <winsvc.h> #ifndef WIN32_LEAN_AND_MEAN #include <cderr.h> #include <dde.h> #include <ddeml.h> #include <dlgs.h> #include <imm.h> #include <lzexpand.h> #include <mmsystem.h> #include <nb30.h> #include <rpc.h> #include <shellapi.h> #include <winperf.h> #ifndef NOGDI #include <commdlg.h> #include <winspool.h> #endif /* __USE_W32_SOCKETS is a __CYGWIN__ guard */ #if defined(__USE_W32_SOCKETS) || !(defined(__CYGWIN__) || defined(__MSYS__)) #include <winsock.h> #endif #ifndef NOGDI /* In older versions we disallowed COM declarations in __OBJC__ because of conflicts with @interface directive. Define _OBJC_NO_COM to keep this behaviour. */ #if !defined (_OBJC_NO_COM) #include <ole2.h> #endif /* _OBJC_NO_COM */ #endif #endif /* WIN32_LEAN_AND_MEAN */ #endif /* RC_INVOKED */ #ifdef __OBJC__ /* FIXME: Not undefining BOOL here causes all BOOLs to be WINBOOL (int), but undefining it causes trouble as well if a file is included after windows.h */ #undef BOOL #endif #endif
3 用法
C/C++ 程序在源文件前面寫 #include <windows.h>即可
4 作用
頭文件封裝了庫函數以及一些類,將一些復雜的工作由庫函數處理,而用戶不必把精力放在這些地方。比如說cout<<,為標准輸出流,其實說到底還是函數調用,不過這個函數有些特殊,用的是運算符重載,確切地說是重載了“<<”運算符,作用是將鍵盤輸入的在屏幕上打印出來,這個功能要是由我們去寫,估計也得學個兩三年才有可能。所以就簡化了操作。
而這一系列的函數都在頭文件中包含(是一個函數庫)。在調用時包涵后便可直接用。
————————————————
版權聲明:轉載請附上原文出處鏈接及本聲明。
原文鏈接:江南電纜 http://www.jiangnanwucai.com/