error C2065: 'wglGetProcAddress' : undeclared identifier (openGL)

今天调式一个小程序,使用

glTexImage3D = (PFNGLTEXIMAGE3DPROC)wglGetProcAddress("glTexImage3D");

来获取OpenGL扩展函数 glTexImage3D的地址,但是出现一个意想不到的error

error C2065: 'wglGetProcAddress' : undeclared identifier

'wglGetProcAddress是个标准的库里面的函数,定义在WINGDI.H 里面。

奇怪的是:如果添加 #include ,结果出现更加多的复杂错误。

而我添加   #include  ,编译成功!

     为什么我会想到添加#include ?来自http://devmaster.net/forums/topic/2494-gl-extension-setup-question/ 的这句话”You will need to get wglGetProcAddress working to use extensions ,be sure you're including all the right files (windows.h, gl.h) and also linking with opengl32.lib. 


注意,我发现另外的一个程序在没有包含#include 的情况下,仍能正确编译和使用wglGetProcAddress!我迷惑了!!!



让我更迷惑的是:

 WINDOWS.H是一个重要的头文件。它包含了其他Windows头文件,这些头文件中最重要的和最基本的是: WINDEF.H 基本型态定义, WINNT.H 支援Unicode的型态定义,WINBASE.H Kernel函数,WINUSER.H 使用者界面函数,WINGDI.H 图形装置界面函数。

那么可以认为  WINDOWS.H里包含了WINGDI.H ,但是还是只有 #include 才可以编译成功。这个类似的问题在http://blog.csdn.net/techtitan/article/details/5741549里也存在。我表示我不明白,谁要是知道,还请留言指教,  thanks in advance~~







你可能感兴趣的:(OpenGL)