VS2010 OpenGL环境搭建
开通这个博客园很久了,就写了一篇博客,技术能力有限,最近有空又在搞三维绘图,查了一些资料,写作了一些实验,这个是自己做过成功的,所以赶紧记下来,免得学过的又忘记。我写这篇博客也是参考了别人的博客,也可以去看看别人写的,非常好。
OpenGL(英语:Open Graphics Library,译名:开放图形库或者"开放式图形库")是用于渲染2D、3D矢量图形的跨语言、跨平台的应用程序编程接口(API)。这个接口由近350个不同的函数调用组成,用来绘制从简单的图形比特到复杂的三维景象。OpenGL的代码均是由C语言实现的,是window封好的库文件。之前看了一篇文章,是C#使用OpenGl编程,没太看明白,看网上关于C++的资料多一些,右转向用C++了。因为学习还在初期,目前算是第一个程序搞出来了,所以先记录下,也是糊糊涂涂,先这样做吧,慢慢就清晰了。
VS2010配置OpenGL开发环境:
1、安装GLUT工具包:
我在网上下载的GLUT工具包,压缩包解开,将得到5个文件(glut.dll, glut32.dll, glut.lib, glut32.lib,glut.h)
(1)把glut.h复制到x:\Program Files\Microsoft\Visual Studio 10.0\VC\include\gl文件夹中,(如果没有gl这个文件夹则可以自己新建一个这个其实就是VS的安装目录)
(2)把解压得到的glut.lib和glut32.lib放到静态函数库所在文件夹(即与include并排的lib文件夹下)
(3)把解压得到的glut.dll和glut32.dll放到操作系统目录下面的system32文件夹内。(典型的位置为:C:\Windows\System32)
2、创建OpenGL程序:
(1)创建一个Win32 Console Application
(2)链接OpenGL libraries。在Visual C++中先右击项目,选择属性,找到连接器标签,最后在输入中的附加依赖库加上opengl32.lib glut32.lib glu32.lib.
然后把下面一段代码复制到工程中。
#include "stdafx.h"
#include <GL/glut.h>//这个头文件必须有
void renderScene(void)
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glLoadIdentity();
glBegin(GL_TRIANGLES);
glVertex3f(-0.5,-0.5,0.0);
glVertex3f(0.5,0.0,0.0);
glVertex3f(0.0,0.5,0.0);
glEnd();
glutSwapBuffers();
/*
glClear(GL_COLOR_BUFFER_BIT);
glRectf(-0.5f,-0.5f,0.5f,0.5f);
glFlush();
*/
}
int _tmain(int argc, _TCHAR* argv[])
{
glutInit(&argc, (char**) argv);
glutInitDisplayMode(GLUT_DEPTH | GLUT_DOUBLE | GLUT_RGBA);
glutInitWindowPosition(100,100);
glutInitWindowSize(320,320);
glutCreateWindow("Hello OpenGL");
glutDisplayFunc(&renderScene);
glutMainLoop();//enters the GLUT event processing loop.
return 0;
}
然后编译,报错,错误1error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏,
在电脑里面搜索 C:\Program Files\Microsoft Visual Studio 10.0\VC\bin C:\Windows\winsxs\x86_netfx-cvtres_for_vc_and_vb_b03f5f7f11d50a3a_6.1.7600.16385_none_ba476986f05abc65//我的目录里有好几个相似的目录,我就随便拷贝了一个,再试就编译成功,运行成功 C:\Windows\Microsoft.NET\Framework\v4.0.30319 这三个路径里面都有cvtres.exe文件,尝试使用第二个路径里面的文件替换第一个路径的文件,问题解决。 (这个问题是windows自动更新造成编译器cvtres.exe的版本过低,如果windows再次更新,则还可能出现这样的问题,届时再重复一下上述步骤即可。)
运行结果如下:


浙公网安备 33010602011771号