windows.h

windows.h

Windows程序中最重要的頭文件
WINDOWS.H是一個最重要的頭文件,它包含了其他Windows頭文件,這些頭文件的某些也包含了其他頭文件。WINDEF.H 基本數據類型定義。WINNT.H 支持Unicode的類型定義。WINBASE.H Kernel(内核)函數。WINUSER.H 用戶界面函數。WINGDI.H 圖形設備接口函數。這些頭文件定義了Windows的所有資料型态、函數調用、資料結構和常數識别字,它們是Windows文件中的一個重要部分。
    中文名: 外文名:windows.h 别名: (内核)函數:WINBASE.H Kernel WINGDI.H:圖形設備接口函數 重要部分:Windows文件中

概述

Windows程序的開頭都可看到:

#include windows.h

WINDOWS.H是一個最重要的頭文件,它包含了其他Windows頭文件,這些頭文件的某些也包含了其他頭文件。這些頭文件中最重要的和最基本的是:

WINDEF.H 基本數據類型定義。

WINNT.H 支持Unicode的類型定義。

WINBASE.H Kernel(内核)函數。

WINUSER.H 用戶界面函數。

WINGDI.H 圖形設備接口函數。

這些頭文件定義了Windows的所有資料型态、函數調用、資料結構和常數識别字,它們是Windows文件中的一個重要部分。

文件路徑:C:Program Files (x86)Microsoft SDKsWindowsv7.0AInclude。

文件

/* BUILD Version: 0001 Increment this if a change has global effects

Copyright (c) Microsoft Corporation. All rights reserved.

Module Name:

windows.h

Abstract:

Master include file for Windows applications.

--*/

#ifndef _WINDOWS_

#define _WINDOWS_

#ifdef __BORLANDC__

#pragma defineonoption __BOROPT_A -A

#pragma defineonoption __BOROPT_H -H

#if (__BORLANDC__ == 0x550) defined(__BOROPT_A) defined(__BOROPT_H)

#error The use of both -A (ANSI mode) and -H (pre-compiled headers) at the same time is unsupported.

#endif

#endif /* __BORLANDC__ */

#pragma option push -b -a8 -pc -A- /*P_O_Push*/

#ifndef WINVER

#define WINVER 0x0501

#else

#if defined(_WIN32_WINNT) (WINVER 0x0400) (_WIN32_WINNT 0x0400)

#error WINVER setting conflicts with _WIN32_WINNT setting

#endif

#endif

#ifndef _INC_WINDOWS

#define _INC_WINDOWS

#if defined (_MSC_VER) (_MSC_VER = 1020)

#pragma once

#endif

/* If defined, the following flags inhibit definition

* of the indicated items.

*

* NOGDICAPMASKS - CC_*, LC_*, PC_*, CP_*, TC_*, RC_

* NOVIRTUALKEYCODES - VK_*

* NOWINMESSAGES - WM_*, EM_*, LB_*, CB_*

* NOWINSTYLES - WS_*, CS_*, ES_*, LBS_*, SBS_*, CBS_*

* NOSYSMETRICS - SM_*

* NOMENUS - MF_*

* NOICONS - IDI_*

* NOKEYSTATES - MK_*

* NOSYSCOMMANDS - SC_*

* NORASTEROPS - Binary and Tertiary raster ops

* NOSHOWWINDOW - SW_*

* OEMRESOURCE - OEM Resource values

* NOATOM - Atom Manager routines

* NOCLIPBOARD - Clipboard routines

* NOCOLOR - Screen colors

* NOCTLMGR - Control and Dialog routines

* NODRAWTEXT - DrawText() and DT_*

* NOGDI - All GDI defines and routines

* NOKERNEL - All KERNEL defines and routines

* NOUSER - All USER defines and routines

* NONLS - All NLS defines and routines

* NOMB - MB_* and MessageBox()

* NOMEMMGR - GMEM_*, LMEM_*, GHND, LHND, associated routines

* NOMETAFILE - typedef METAFILEPICT

* NOMINMAX - Macros min(a,b) and max(a,b)

* NOMSG - typedef MSG and associated routines

* NOOPENFILE - OpenFile(), OemToAnsi, AnsiToOem, and OF_*

* NOSCROLL - SB_* and scrolling routines

* NOSERVICE - All Service Controller routines, SERVICE_ equates, etc.

* NOSOUND - Sound driver routines

* NOTEXTMETRIC - typedef TEXTMETRIC and associated routines

* NOWH - SetWindowsHook and WH_*

* NOWINOFFSETS - GWL_*, GCL_*, associated routines

* NOCOMM - COMM driver routines

* NOKANJI - Kanji support stuff.

* NOHELP - Help engine interface.

* NOPROFILER - Profiler interface.

* NODEFERWINDOWPOS - DeferWindowPos routines

* NOMCX - Modem Configuration Extensions

*/

#if defined(RC_INVOKED) !defined(NOWINRES)

#include winresrc.h

#else

#if defined(RC_INVOKED)

/* Turn off a bunch of stuff to ensure that RC files compile OK. */

#define NOATOM

#define NOGDI

#define NOGDICAPMASKS

#define NOMETAFILE

#define NOMINMAX

#define NOMSG

#define NOOPENFILE

#define NORASTEROPS

#define NOSCROLL

#define NOSOUND

#define NOSYSMETRICS

#define NOTEXTMETRIC

#define NOWH

#define NOCOMM

#define NOKANJI

#define NOCRYPT

#define NOMCX

#endif

#if defined(__BORLANDC__) defined(__cplusplus)

# include mem.h // Needed for protos of memxxx() routines

#endif

#if defined(__BORLANDC__)

# ifndef _WIN32_WINNT

# define _WIN32_WINNT 0x0500 /* If not set, assume NT 5.00 */

# endif

# if defined(__cplusplus)

# define NOMINMAX /* for WINDEF.H */

# else

# define NONAMELESSUNION /* for OAIDL.H, OBJIDL.H,... */

# endif

# if defined(_UNICODE)

# define UNICODE

# endif

#endif

#if !defined(_68K_) !defined(_MPPC_) !defined(_X86_) !defined(_IA64_) !defined(_AMD64_) defined(_M_IX86)

#define _X86_

#endif

#if !defined(_68K_) !defined(_MPPC_) !defined(_X86_) !defined(_IA64_) !defined(_AMD64_) defined(_M_AMD64)

#define _AMD64_

#endif

#if !defined(_68K_) !defined(_MPPC_) !defined(_X86_) !defined(_IA64_) !defined(_AMD64_) defined(_M_M68K)

#define _68K_

#endif

#if !defined(_68K_) !defined(_MPPC_) !defined(_X86_) !defined(_IA64_) !defined(_AMD64_) defined(_M_MPPC)

#define _MPPC_

#endif

#if !defined(_68K_) !defined(_MPPC_) !defined(_X86_) !defined(_M_IX86) !defined(_AMD64_) defined(_M_IA64)

#if !defined(_IA64_)

#define _IA64_

#endif // !_IA64_

#endif

#ifndef _MAC

#if defined(_68K_) || defined(_MPPC_)

#define _MAC

#endif

#endif

#if defined (_MSC_VER)

#if ( _MSC_VER = 800 )

#ifndef __cplusplus

#pragma warning(disable:4116) // TYPE_ALIGNMENT generates this - move it

// outside the warning push/pop scope.

#endif

#endif

#endif

#ifndef RC_INVOKED

#if ( _MSC_VER = 800 ) || defined(__BORLANDC__)

#pragma warning(disable:4514)

#ifndef __WINDOWS_DONT_DISABLE_PRAGMA_PACK_WARNING__

#pragma warning(disable:4103)

#endif

#if _MSC_VER = 1200

#pragma warning(push)

#endif

#pragma warning(disable:4001)

#pragma warning(disable:4201)

#pragma warning(disable:4214)

#endif

#include excpt.h

#include stdarg.h

#endif /* RC_INVOKED */

#include windef.h

#include winbase.h

#include wingdi.h

#include winuser.h

#if !defined(_MAC) || defined(_WIN32NLS)

#include winnls.h

#endif

#ifndef _MAC

#include wincon.h

#include winver.h

#endif

#if !defined(_MAC) || defined(_WIN32REG)

#include winreg.h

#endif

#ifndef _MAC

#include winnetwk.h

#endif

#ifndef WIN32_LEAN_AND_MEAN

#include cderr.h

#include dde.h

#include ddeml.h

#include dlgs.h

#ifndef _MAC

#include lzexpand.h

#include mmsystem.h

#include nb30.h

#include rpc.h

#endif

#include shellapi.h

#ifndef _MAC

#include winperf.h

#include winsock.h

#endif

#ifndef NOCRYPT

#include wincrypt.h

#include winefs.h

#include winscard.h

#endif

#ifndef NOGDI

#ifndef _MAC

#include winspool.h

#ifdef INC_OLE1

#include ole.h

#else

#include ole2.h

#endif /* !INC_OLE1 */

#endif /* !MAC */

#include commdlg.h

#endif /* !NOGDI */

#endif /* WIN32_LEAN_AND_MEAN */

#include stralign.h

#ifdef _MAC

#include winwlm.h

#endif

#ifdef INC_OLE2

#include ole2.h

#endif /* INC_OLE2 */

#ifndef _MAC

#ifndef NOSERVICE

#include winsvc.h

#endif

#if(WINVER = 0x0400)

#ifndef NOMCX

#include mcx.h

#endif /* NOMCX */

#ifndef NOIME

#include imm.h

#endif

#endif /* WINVER = 0x0400 */

#endif

#ifndef RC_INVOKED

#if ( _MSC_VER = 800 ) || defined(__BORLANDC__)

#if _MSC_VER = 1200

#pragma warning(pop)

#else

#pragma warning(default:4001)

#pragma warning(default:4201)

#pragma warning(default:4214)

/* Leave 4514 disabled. It's an unneeded warning anyway. */

#endif

#endif

#endif /* RC_INVOKED */

#endif /* RC_INVOKED */

#endif /* _INC_WINDOWS */

#pragma option pop /*P_O_Pop*/

#endif /* _WINDOWS_ */

作用

頭文件封裝了庫函數以及一些類,将一些複雜的工作由庫函數處理,而用戶不必把精力放在這些地方。比如說cout<<,為标準輸出流,其實說到底還是函數調用,不過這個函數有些特殊,用的是運算符重載,确切地說是重載了“<<”運算符,作用是将鍵盤輸入的在屏幕上打印出來,這個功能要是由我們去寫,估計也得學個兩三年才有可能。所以就簡化了操作。

而這一系列的函數都在頭文件中包含(是一個函數庫)。在調用時包涵後便可直接用。

頭文件一般包含以下幾類内容:

1、對類型的聲明。

2、函數聲明。

3、内置(inline)函數的定義。

4、宏定義。用#define定義的符号常量和用const聲明的常變量。

5、全局變量定義。

6、外部變量聲明。如entern int a;

6、還可以根據需要包含其他頭文件。

不同的頭文件包括以上不同的信息,提供給程序設計者使用,這樣,程序設計者不需自己重複書寫這些信息,隻需用一行#include命令就把這些信息包含到本文件了,大大地提高了編程效率。由于有了#include命令,就把不同的文件組合在一起,形成一個文件。因此說,頭文件是源文件之間的接口。

用法

C/C++ 程序在源文件前面寫 #include 即可。

相關詞條

相關搜索

其它詞條