为什么有的程序在包含"gl.h"头文件时,要先包含"windows.h"?而有些程序又不需要?

网上有种说法是:根据OpenGL编程指南, 在包含"gl.h"头文件时, 要先包含"windows.h", 因为在gl.h里使用了windows.h中定义的标识符。
但是我之前写的一些程序并未先包含"windows.h",编译也并没有出现问题。
究竟在什么情况下才需要包含"windows.h"呢?
最新回答
哊姿姷菋

2024-11-07 11:04:22

你之前写的程序是指控制台那种程序,用的是C的scanf printf或者是c++的cout cin之类的吧

这种是因为你所使用的所有定义都在C头文件里定义好了,你没有用到其它类型或者函数,所以才不需要包含windows.h

如果你用到了DWORD HANDLE之类的就需要包含windows.h了(当然 这也不是绝对,你完全可以自己定义这种类型的变量)

gl.h要先包含windows.h,确实是因为它里面使用到了WINDOWS.h头文件里定义的一些类型了

一般编写windows下的应用程序,都可以包含windows.h这个头文件,即使你没有用到也没关系,这个不会让你的Release版本的程序变大的
好多余

2024-11-07 22:00:24

先弄明白windows.h这个头文件是干嘛的。就明白了。
而且这个头文件只在Windows操作系统上有。所以不论出于何种原因,我怀疑你看错了原话。(要是放到linux平台下,你编译过不了)。
孤岛re∷

2024-11-07 20:46:34

"APIENTRY" is defined in 'windows.h'