首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我是否需要包含"Windows.h“以隐式地使用/与WindowsAPI交流?

我是否需要包含"Windows.h“以隐式地使用/与WindowsAPI交流?
EN

Stack Overflow用户
提问于 2020-02-12 15:19:27
回答 2查看 1.2K关注 0票数 0

引用维基百科文章中的"Windows.h“(强调我的):

"windows.h是C和C++编程语言的一个特定于Windows的头文件,它包含windows.h中所有函数的声明、Windows程序员使用的所有公共宏以及各个函数和子系统使用的所有数据类型。它定义了大量特定于Windows的函数**,可以在C. 中使用,Win32 API可以通过包含头文件并链接到适当的库来添加到C编程项目中。要在xxxx.dll中使用函数,程序必须链接到xxxx.lib (或MinGW中的libxxxx.dll.a )。有些标头与.dll无关,但与静态库关联(例如,scrnsave.h需要scrnsave.lib)。“

我的问题是:

我是否需要将windows.h的头文件包含到我的C/C++项目中,如果我想要我的可执行文件(创建的仅在WindowsAPI上运行)隐式地与/使用WindowsAPI通信吗?

或者,如果我没有指定它,并想要隐式访问WindowsAPI,编译器会自动地吗?

我的意思是不显式地使用在windows.h中定义的函数、宏或数据类型。相反,如果我想通过shell隐式地访问WindowsAPI的组件,f.e。通过使用cmd.exe或PowerShell。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-02-12 15:38:40

这不仅适用于带有Win32 API的"Windows.h“,而且适用于(几乎)与某个API相关的任何头文件。一般情况下,我要说的是,在实际需要之前,不需要包含标题。在大多数情况下,不管您是否需要它,API文档中都有说明。

例如,CreateWindow文档告诉您您需要include Windows.h

因此,直到您实际使用这个或另一个函数(宏、类、#定义等)您不需要包含相应的标题。

票数 5
EN

Stack Overflow用户

发布于 2020-02-12 15:37:31

windows.h是一个“超级标题”,包括几乎所有可以想象的东西。Win API的特定部分也有自己的标头,所以您也可以包括您感兴趣的部分。

在MSDN上查找特定的API函数。如果它指定函数驻留在特定的标头中,那么您可能只需要包含该标头。如果它编译和链接很好,那么您就不需要windows.h。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60191564

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档