===============================================================
【问题】
#include <gl\glaux.h>
这一行缺少文件,导致编译不过
===============================================================
【了解】
后来搜索以后才知道glaux是《OpenGL 编程指南》(red book)里使用的小框架,它的作用是:
封装了windows的一些函数,例如加载读取bitmap
如auxSolidTeapot函数可以直接绘制一个茶壶
如auxInitWindowA函数封装了windows窗口的初始化
如auxMouseFunc函数封装了鼠标事件的输入
如auxMainLoop函数封装了程序运行函数
后来发现与其使用glaux其实不如使用glut,glut封装得更好,功能也更强大,而且是开源的。
没办法,谁叫示例里使用的是glaux呢?
===============================================================
【下载】
如何下载呢?大致在网上搜索了一下发现CSDN里有一个免费下载地址:
glaux库下载:
http://download.csdn.net/detail/li235456789/8224459
【使用】
--------------------------------------------------------------------------------------------------------------
[第一种摆放方法]
找到windwos sdk的安装目录,
C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0AC:\Windows\System32\glaux.dll
--------------------------------------------------------------------------------------------------------------
[第二种摆放方法]
OpenGL实例编程精粹\gl\glaux.h
OpenGL实例编程精粹\gl\glaux.lib
OpenGL实例编程精粹\gl\glaux.dll
进入工程:
OpenGL实例编程精粹\第7章\DrawBitmap\DrawBitmap.sln
添加:
Configuration Properties -> C/C++ -> General -> Additional Include Directories -> $(ProjectDir)..\..\
Configuration Properties -> Linker -> General -> Additional Library Directories -> $(ProjectDir)..\..\gl
Configuration Properties -> Linker -> Input -> Additional Dependencies -> glaux.lib
或者在.cpp里上方添加:
#pragma comment(lib, "glaux.lib")
运行,ok!
===============================================================
如果在draw函数中调用了glaux的函数:
auxSolidTeapot(1.0f);
编译的时候就会产生错误导致编译不过:
error LNK2026: module unsafe for SAFESEH image.
Configuration Properties -> Linker -> Advanced -> Image Has Safe Exception Handlers -> Yes (/SAFESEH)
更改为:
Configuration Properties -> Linker -> Advanced -> Image Has Safe Exception Handlers -> No(/SAFESEH:NO)
重新编译,这样就可以通过编译了。
===============================================================