-
2022-02-02 08:06:29
c语言 #include<windows.h>是写window程序需要的重要头文件。
Windows.h头文件之所重要,是因为头文件封装了许多库函数以及一些类,将一些复杂的工作由库函数处理。Windows.h头文件中包含了Windef.h、Winnt.h、Winbase.h、Winuser.h、Wingdi.h等头文件,涉及到了Windows内核API,图形界面接口,图形设备函数等重要的功能。
在C语言家族程序中,头文件被大量使用。一般而言,每个C++/C程序通常由头文件和定义文件组成。头文件作为一种包含功能函数、数据接口声明的载体文件,主要用于保存程序的声明,而定义文件用于保存程序的实现。
更多相关内容 -
windows.h头文件
2020-03-29 05:40:16WINDOWS.H是一个最重要的头文件,它包含了其他Windows头文件,这些头文件的某些也包含了其他头文件。 -
C++的文件 windows.h头文件
2013-05-27 02:12:41C++的文件 windows.h头文件 -
C++ windows.h详解
2021-07-18 08:46:52WINDOWS.H是一个最重要的头文件,它包含了其他Windows头文件,这些头文件的某些也包含了其他头文件。这些头文件中最重要的和最基本的是: WINDEF.H 基本数据类型定义。 WINNT.H 支持Unicode的类型定义。 WINBASE.H ...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<<,为标准输出流,其实说到底还是函数调用,不过这个函数有些特殊,用的是运算符重载,确切地说是重载了“<<”运算符,作用是将键盘输入的在屏幕上打印出来,这个功能要是由我们去写,估计也得学个两三年才有可能。所以就简化了操作。
而这一系列的函数都在头文件中包含(是一个函数库)。在调用时包涵后便可直接用。
-
windows.h 下载
2010-10-14 00:39:54main header file for the Win32 API windows.h Abstract: Master include file for Windows applications. -
(Visual Studio C++)#include<windows.h>报错:无法打开windows.h解决方案汇总
2021-03-11 14:45:31一、显示“无法打开windows.h文件”,原因可能没有将Windows.h 这个头文件的目录包含进来或者没有安装SDK。 1.在“Visual Studio Installer”修改: 2.在使用C++桌面开发里将Windows 10 SDK勾上(勾上一个版本应该...折腾了好久,百度搜了将近十个网址才解决,话不多说,来看解决方法
一、显示“无法打开windows.h文件”,原因可能没有将Windows.h 这个头文件的目录包含进来或者没有安装SDK。
1.在“Visual Studio Installer”修改:
2.在使用C++桌面开发里将Windows 10 SDK勾上(勾上一个版本应该就可以了)
3.在项目==>属性 里,更改Windows SDK版本
4.一般到了上一步就结束了,如果还不行,在属性页的VC++目录->包含目录中打开,查看um文件夹是否在里面,如果不在的话添加到包含目录。windows.h文件就在这个目录C:\Program Files (x86)\Windows Kits\10\Include\10.0.17763.0\um\windows.h中。
二、 以上步骤中如果在安装Window SDK时报错,那你可能遇到和我一样的特殊情况了,那就是更换了电脑的硬盘的名字或者重新给硬盘分区的时候换了名字,本质上是注册表里残留的配置没有修改回来,安装失败导致报错
安装Windows SDK时,路径存在问题,比如你默认安装在F盘,但是你电脑现在没有F盘。但是这个路径在安装器里面改不了,需要手动在注册表里进行修改。
方法如下:
通过打开注册表,并将Win10 SDK的安装路径从F盘(不存在的盘)更改为E盘。(电脑中存在的盘)(1)Computer \ HKEY_LOCAL_MACHINE \ SOFTWARE \ WOW6432Node \ Microsoft \ Windows Kits \ Installed Roots \(更改KitsRoot10的数据)
修改路径
(2)和(3)同理(2)Computer \ HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows Kits \ Installed Roots \(更改KitsRoot10的数据)
(3)Computer \ HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows App Certification Kit \(更改InstallLocation的数据)参考资料:
https://social.msdn.microsoft.com/Forums/zh-CN/622ab8a4-2105-495f-a85c-99e530a69cd4/2035129992vs20173103821306292566529225171243201996820010dll390333?forum=visualcpluszhchshttps://developercommunity.visualstudio.com/t/%E6%97%A0%E5%8F%91%E5%AE%89%E8%A3%85win10sdk-10019041/1272282?viewtype=all
-
linux下的qt编译windows下的qt项目文件找不到windows.h和conio.h
2019-11-04 10:56:35我知道windows.h可以换成qt_window.h 但是下面的这个换成qt前缀的就不行了,通过搜索发现可以安装 ``` sudo apt-get install libncurses5-dev ``` 但是最后会报依赖问题错误 后来经过搜索又找到解决依赖问题 ... -
VS2013出现“#error WINDOWS.H already included. MFC apps must not #include <windows.h>”错误
2021-04-23 11:43:27找到报错项目的stdaxf.h文件,注释掉以下头文件内容,并在最上方添加#include "afxwin.h",最终stdaxf.h内容如下 // stdafx.h : 标准系统包含文件的包含文件, // 或是经常使用但不常更改的 // 特定于项目的包含...添加线程时出现的标题出错处理方法如下
找到报错项目的stdaxf.h文件,注释掉以下头文件内容,并在最上方添加#include "afxwin.h",最终stdaxf.h内容如下
// stdafx.h : 标准系统包含文件的包含文件, // 或是经常使用但不常更改的 // 特定于项目的包含文件 // #pragma once #include "afxwin.h" // 新添加进来的头文件 #include "targetver.h" // 注释掉的内容 /* #define WIN32_LEAN_AND_MEAN // 从 Windows 头文件中排除极少使用的信息 // Windows 头文件: #include <windows.h> */ // TODO: 在此处引用程序需要的其他头文件
解决完之后,还出现了一个 “错误 1 error LNK2005: DllMain 已经在 uafxcwd.lib(dllmodul.obj) 中定义”
解决办法如下:
报错项目的属性-> C/C++ -> 预处理器 -> 预处理器定义 -> 删除“_USRDLL”
重新编译通过!
-
c语言windows.h头文件详解
2018-11-20 00:00:31windows.h头文件包含的函数及其用法 1.GetAsyncKeyState()()//通过函数来判断按键按下的状态 主要用法是VK_键的名称 例如 GetAsyncKeyState(VK_SHIFT) GetAsyncKeyState(VK_LSHIFT) ... -
VS2017无法找到windows.h、stdio.h、tchar.h头文件
2020-02-16 15:25:55“无法找到源文件windows.h” “无法找到源文件stdio.h” “无法找到源文件tchar.h” 报错代码如下所示: 2. 问题产生原因: 是由于在安装VS的过程中,少选了“用于桌面 C++ [x86 和 x64]的 Windows 10 SDK..... -
出现错误 fatal error C1189: #error : WINDOWS.H already included. MFC apps must not #include ...
2020-10-29 18:38:30出现错误 fatal error C1189: #error : WINDOWS.H already included. MFC apps must not #include <windows.h>的解决办法: 整理一个授权函数加到已有的dll中,在编译加入的代码时出现如题的bug,整了好久都没... -
windows.h详解
2018-12-28 10:01:29参考windows.h解构 刚开头的一段注释是对该头文件的描述: /*++ BUILD Version: 0001 Increment this if a change has global effects Copyright (c) 1985-1997, Microsoft Corporation ... -
c++标准库windows.h文件
2020-02-03 10:49:02#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 Abs... -
QT里的windows.h和winsock2.h重定义错误
2020-04-28 17:30:20windows.h和winsock2.h的相爱相杀的故事,在网络上广为流传,引发无数血案。各种作案场景,前置环境复杂纷繁,其中root原因和发生规律,以及解决方法,大致几种。今天就写上网上没有出现过的解决方法。 现场 前2天... -
windows.h 详解
2018-05-20 08:36:45参考windows.h解构 刚开头的一段注释是对该头文件的描述: /*++ BUILD Version: 0001 Increment this if a change has global effects Copyright (c) 1985-1997, Microsoft Corporation Module Name: ... -
QT找不到windows.h解决方法
2020-06-22 19:09:42搞C++大作业,github上扒了QT项目,跑的时候显示找不到windows.h,想着好久没用了,环境崩了,就去找解决方案。 恶心了我半天,本来以为是VS的问题,但是不是,最后还是环境变量的问题 网上全是C:\Program Files ... -
学习C/C++中的windows.h库
2019-04-21 16:53:39windows.h> 下面是我涉及到的相关windows.h的学习的记录 1、句柄(Handle) 是整个Windows编程的基础。一个句柄是指使用一个唯一的整数值,即一个4字节(32位系统)或8字节(64位程序中)长的数值,来让wind..... -
windows.h和winsock2.h重定义解决办法
2018-11-13 09:18:32&amp;amp;amp;amp;lt;4&amp;amp;amp;amp;gt;#if(_WIN32_WINNT &...winsock2.h&amp;amp;amp;amp;gt; #include &amp;amp;amp;amp;lt;mswsock.h&amp;amp;amp -
include Windows.h 出错及解决方法
2020-06-30 17:44:35Windows.h> 之后,就莫名其妙出现下图中的错误。 分析: 我试了一下,这种情况出现在我引用外部头文件,即通过包含其他目录,引用目录中的头文件,在#include<Windows.h>,我的程序就会报上面的错。 ... -
C++ <windows.h>库函数探究初步续一:键鼠操作
2021-02-02 22:36:27windows.h> using namespace std; #define KEY_DOWN(VK_NONAME) ((GetAsyncKeyState(VK_NONAME) & 0x8000) ? 1:0) void CenterWindow(RECT &rect, RECT &desktop) { //使窗口移动到桌面居中位置 ... -
WinSock2.h和windows.h发送冲突的解决方法
2017-09-27 13:51:15发生冲突的原因是windows.h里面包含了winsock.h, 而winsock.h和WinSock2.h明显是冲突的。 解决办法是把windows.h放在WinSock2.h的后面。 为什么这样做可以呢?我们看WinSock2.h里面有这么一段代码: #ifndef _... -
【C/C++】 Visual Studio2019找不到windows.h
2020-08-08 11:35:16Visual Studio2019找不到windows.h1.背景2.原因分析3.解决办法3.1 windows10打开Visual Studio Installer3.2 修改3.3 单个组件中勾选...编译的时候报错:无法打开包括文件:“windows.h”: No such file or director -
C语言中头文件 windows.h什么意思
2019-11-26 20:58:58Windows.h头文件之所重要,是因为头文件封装了许多库函数以及一些类,将一些复杂的工作由库函数处理,Windows.h头文件中包含了Windef.h、Winnt.h、Winbase.h、Winuser.h、Wingdi.h等头文件,涉及到了Windows内核API... -
C语言windows.h库的常用函数(二)
2018-06-20 14:27:50emmm,最近学校事务繁忙,所拖更一个多月,所以对不起各位读者,今天更新windows.h库常用函数的第二期,第三期也在准备中。 GetCursorPos函数 在上一篇中的WindowFromPoint函数的示例代码中就已经用到了... -
#error windows.h already included. MFC apps must not #include <windows.h>
2017-05-15 21:27:34这个问题是多次包含windows.h这个头文件,百度的解决办法是:将afxwin.h放到windows.h前面include就ok。 -
VS2017无法打开windows.h
2019-09-30 13:15:57VS2017没有添加Windows的SDK造成的 二、解决办法 找到Windows Kit文件,如果VS安装在非C盘,需要在其他盘中找到例如D盘,VS-项目属性-C++目录-包含目录,添加4个文件路径 D:\Windows Kits\10\Include\10.0.17763.... -
C语言windows.h库的常用函数(三)
2019-09-07 21:57:00SetCursorPos函数是windows.h库中用来设置指针位置的函数,使用该函数鼠标指针将会直接跳至指定坐标位置 参数 SetCursorPos函数拥有x和y两个整型参数,作为鼠标指针的坐标位置(其中0,0坐标对应屏幕左上角) 示例 #... -
fatal error C1189: #error : WINDOWS.H already included
2019-06-25 23:41:03fatal error C1189: #error : WINDOWS.H already included. MFC apps must not #include <windows.h> 当你第一次遇到这个编译问题时,大家都会觉得非常奇怪,怎么会出现这么奇葩的编译错误;我已经遇到过好... -
C语言windows系统库 ,windows.h
2018-11-29 23:30:47首先调用Windows.h这个头文件 #include<windows.h> 接下来调用MessageBox(1,2,3,4); 第一个参数设置为0,第一个参数是依赖的窗口的编号,相当于弹出的窗口,0为系统弹出第二个参数是对话框的内容,第...