zoukankan      html  css  js  c++  java
  • c语言_头文件_windows.h

    概述

    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 SDKsWindowsv7.0AInclude。[Windows 7    SDK]
      C:Program Files (x86)Windows Kits8.0Includeum                    [Windows 8    SDK]
      C:Program Files (x86)Windows Kits8.1Includeum                    [Windows 8.1 SDK]
      不同版本的SDK位置不一样,x86的在C:Program Files 相应的SDK下。

    文件内容

    #include <winapifamily.h>

    /*++ 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_


    #include <sdkddkver.h>

    #ifndef _INC_WINDOWS
    #define _INC_WINDOWS

    #if defined (_MSC_VER) && (_MSC_VER >= 1020)
    #pragma once
    #endif

    #pragma region Application Family
    #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)


    /* 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(_68K_) && !defined(_MPPC_) && !defined(_X86_) && !defined(_IA64_) && !defined(_AMD64_) && !defined(_ARM_) && defined(_M_IX86)
    #define _X86_
    #endif

    #if !defined(_68K_) && !defined(_MPPC_) && !defined(_X86_) && !defined(_IA64_) && !defined(_AMD64_) && !defined(_ARM_) && defined(_M_AMD64)
    #define _AMD64_
    #endif

    #if !defined(_68K_) && !defined(_MPPC_) && !defined(_X86_) && !defined(_IA64_) && !defined(_AMD64_) && !defined(_ARM_) && defined(_M_ARM)
    #define _ARM_
    #endif

    #if !defined(_68K_) && !defined(_MPPC_) && !defined(_X86_) && !defined(_IA64_) && !defined(_AMD64_) && !defined(_ARM_) && defined(_M_M68K)
    #define _68K_
    #endif

    #if !defined(_68K_) && !defined(_MPPC_) && !defined(_X86_) && !defined(_IA64_) && !defined(_AMD64_) && !defined(_ARM_) && defined(_M_MPPC)
    #define _MPPC_
    #endif

    #if !defined(_68K_) && !defined(_MPPC_) && !defined(_X86_) && !defined(_M_IX86) && !defined(_AMD64_) && !defined(_ARM_) && 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 )
    #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 )
    #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 /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) */
    #pragma endregion

    #endif /* _INC_WINDOWS */

    #endif /* _WINDOWS_ */

    作用

    头文件封装了库函数以及一些类,将一些复杂的工作由库函数处理,而用户不必把精力放在这些地方。比如说cout<<,为标准输出流,其实说到底还是函数调用,不过这个函数有些特殊,用的是运算符重载,确切地说是重载了“<<”运算符,作用是将键盘输入的在屏幕上打印出来,这个功能要是由我们去写,估计也得学个两三年才有可能。所以就简化了操作。

    而这一系列的函数都在头文件中包含(是一个函数库)。在调用时包涵后便可直接用。

    用法

    C/C++ 程序在源文件前面写 #include <windows.h>即可

  • 相关阅读:
    redis set
    实现排行榜神器——redis zset
    nginx挂了怎么办
    django 400报错
    项目管理【18】 | 项目进度管理-规划进度管理
    项目管理【17】 | 项目进度管理-进度管理概述
    项目管理【23】 | 项目进度管理-制定进度计划
    移动端开发基础【7】生命周期
    移动端开发案例【7】移动端朋友圈发布显示开发
    移动端开发案例【6】移动端群、用户搜索开发
  • 原文地址:https://www.cnblogs.com/landv/p/3593794.html
Copyright © 2011-2022 走看看