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

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

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

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

error C2065: 'wglGetProcAddress' : undeclared identifier

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

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

而我添加   #include <windows.h>  ,编译成功!

     为什么我会想到添加#include <windows.h>?来自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 <windows.h>的情况下,仍能正确编译和使用wglGetProcAddress!我迷惑了!!!



让我更迷惑的是:

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

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







  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值