在VS2017下配置OpenGL
这个方法适合初学者使用,较为简单方便。
第一,你的VS2017一定要安装了C/C++开发组件
可以打开Visual Studio Installer来查看


另外,确定你有安装NuGet包管理器,在单个组件中查看,没有请勾选

glut的库可以点击下面的链接下载
[https://www.opengl.org/resources/libraries/glut/glutdlls37beta.zip](适用windows系统)
也可以到OpenGL官网上下载不同版本的glut库
[https://www.opengl.org/resources/libraries/glut]
下载之后打开压缩包,可以看到如下的文件

解压后,找到你的VS2017的安装目录
我的是E:\Microsoft Visual Studio\2017\Community
可以看到里面的目录

把glut.h放到...\VC\Tools\MSVC\14.10.25017\include\gl下(没有gl文件夹就新建一个)
把glut.lib,glut32.lib放到...\VC\Tools\MSVC\14.10.25017\lib\x86下
把glut.dll,glut32.dll放到C:\Windows\SysWOW64下(我的系统是64位的,如果是32位的系统,请放到C:\Windows\System32下)
接下来打开VS2017,新建一个win32控制台项目,选择空项目
如果是最新版的VS2017(2017/11/12)请新建Windows桌面向导


新建项目完成后,点击上方项目选择管理NuGet程序包

选择浏览,搜索nupengl,2个都安装

什么是NuGet?
用visual studio开发的童鞋们应该都有这样的感受,经常在copy别人的项目后,出现找不到xxx.h,找不到xxx.lib,找不到balabala。甚至还有“模块计算机类型“x86”与目标计算机类型“x64”冲突”,“模块计算机类型“x64”与目标计算机类型“x86”冲突”,各种Link错误等等令人烦躁的提示!
很多时候都是工程中使用了第三方库,而工程又没有能够自适应的配置文件能帮我们找到这些第三方库造成的,这时候需要程序员在C/C++ ->常规->附加包含目录添加各种头文件路径,链接器 -> 常规 -> 附加库目录 添加各种lib的路径,然后还需要在链接器 -> 输入 -> 附加依赖项填写工程中使用的lib名称。这已经足够烦人了,何况lib还要区分x86/x64,debug/release,vc平台(vc90,vc100 and etc.),排列组合大家都学过吧,这得配置多少次大家自己算吧。稍有不慎就会出错,如果是一个陌生的项目更大大增加出错可能,如果你忘记添加相应的lib而导致无法解析的外部符号,而恰恰你对这个外部符号很陌生并不知道它在哪个lib里,这就尴尬了。
然而突然有一天,微软说我们做了个NuGet把Package 从工程中分离,以后它帮你管理Package 。
[http://blog.csdn.net/junparadox/article/details/51086374]
是的,再不需要C/C++ ->常规->附加包含目录添加各种头文件路径,不需要在链接器 -> 常规 -> 附加库目录 添加各种lib的路径,也不需要在链接器 -> 输入 -> 附加依赖项输入各种lib名字了。
注意:每次新建项目都要安装一下nupengl.core和nupengl.core.redist
在源文件目录下新建cpp文件
输入下面的测试代码
#include<gl/GLUT.H>
void Initial(void)//初始化函数
{
glClearColor(1.0f, 1.0f, 1.0f, 1.0f);//白色背景,前3个是RGB,最后是Alpha值,用来控制透明,1.0表示完全不透明
glMatrixMode(GL_PROJECTION);//OpenGL按照三维方式来处理图像,所以需要一个投影变换将三维图形投影到显示器的二维空间中
gluOrtho2D(0.0, 200, 0.0, 150.0);//指定使用正投影将一个x坐标在0~200,y坐标0~150范围内的矩形坐标区域投影到显示器窗口
}
void myDisplay(void)//显示回调函数
{
glClear(GL_COLOR_BUFFER_BIT);//使用glClearColorz中指定的值设定颜色缓存区的值,即将窗口中的每一个像素设置为背景色
glColor3f(0.0f, 0.0f, 0.0f);//绘图颜色为黑色
glRectf(50.0f, 100.0f, 150.0f, 50.0f);//图形的坐标,绘制一个左上角在(50,100),右下角在(150,50)的矩形
glFlush();//清空OpenGL命令缓冲区,强制执行命令缓冲区中所有OpenGL函数
}
int main(int argc, char * argv[])//这是使用glut库函数进行窗口管理
{
glutInit(&argc, argv);//使用glut库需要进行初始化
glutInitDisplayMode(GLUT_RGB | GLUT_SINGLE);//设定窗口显示模式,颜色模型和缓存,这里是RGB颜色模型和单缓存
glutInitWindowPosition(100, 100);//设定窗口的初始位置,屏幕左上角为原点,单位为像素
glutInitWindowSize(400, 400);//设定窗口的大小
glutCreateWindow("第一个OpenGL程序——铖伟");//创建一个窗口,参数是窗口标题名
glutDisplayFunc(&myDisplay);//将myDisplay指定为当前窗口的显示内容函数
Initial();
glutMainLoop();//使窗口框架运行起来,使显示回调函数开始工作
return 0;
}
然后点击运行,就可以看到一个黑色的矩形

在VS2017下配置OpenGL的更多相关文章
- VS2017如何配置openGL环境
转自:http://blog.csdn.net/qq_26982531/article/details/62056913 这里着重介绍vs2017配置openGL环境与以前版本的不同之处: ...
- w10环境vs2017,vs2019配置Opengl快捷方法
最近,计算机图形学老师向我们布置了任务,配置自己的opengl.百度之后我发现很多教程和方法尝试之后,我发现一种简单的方法来分享给大家. 首先我的软件配置是w10专业版系统+Visual Stdio ...
- Windows Visual Studio 下配置OpenGL
很多同学不是很清楚OpenGL的配置,一个个帮忙配置也不是办法,干脆就写一篇教程好了. 本人使用的是Visual Studio 2015版本,对于Visual Studio 2012版本的配置会稍有不 ...
- Mac Xcode下配置OpenGL
暂时搁置一下iOS,又要去弄一些杂七杂八的东西了,毕竟是学校的作业,还是要完成的. 作业是让我们用OpenGL做一个茶壶- -.而且要三维立体能旋转的那种. 好吧这些都不是重点,重点是我最终决定在Ma ...
- (一)VS2015下配置OpenGL
刚开始用OpenGL,一开始不太明白配置库的原理,在VS2015下耗费了大量时间.这里将配置过程做个笔记,以供日后查看.配置过程中,需要下载cmake构建工具以及glew和glfw库. 下载地址为: ...
- VS2019下配置OpenGL全过程
一:下载VS2019 官网下载社区版 二:下载GLEW.GLFW 百度网盘地址: 链接:https://pan.baidu.com/s/1Uvz9svdnVRvDXNHjVgApig 提取码:rsgp ...
- Windows下配置OpenGL环境
这里编译工具为VS2012. 首先OpenGL的官网如下链接(英文) http://www.opengl.org http://www.opengl.org/resources/libraries/g ...
- win7 64位系统,vs2010下配置OpenGL开发环境
glut下载地址: http://www.opengl.org/resources/libraries/glut/glutdlls37beta.zip 或者:http://user.xmission. ...
- 【VS开发】【OpenGL开发】OpenGL---Windows下配置与第一个OpenGL程序
面记录一下Windows下配置OpenGL与我的第一个OpenGL程序. 第一步:选择一个编译环境 现在Windows系统的主流编译环境有Visual Studio,Broland C++ Bu ...
随机推荐
- JNDI在本项目中的应用
一,在tomcat的context文件中做如下配置 <?xml version="1.0" encoding="UTF-8"?> <Conte ...
- Linux入门——开机启动过程浅析
Linux开机启动过程浅析 Introduction 开机启动过程分为以下6个步骤,分别是BIOS, MBR, GRUB, Kernel, Init, RunLevel, RunDefinition ...
- SDP(11):MongoDB-Engine功能实现
根据上篇关于MongoDB-Engine的功能设计方案,我们将在这篇讨论里进行功能实现和测试.下面是具体的功能实现代码:基本上是直接调用Mongo-scala的对应函数,需要注意的是java类型和sc ...
- [POJ2115]C Looooops 拓展欧几里得
原题入口 这个题要找到本身的模型就行了 a+c*x=b(mod 2k) -> c*x+2k*y=b-a 求这个方程对于x,y有没有整数解. 这个只要学过拓展欧几里得(好像有的叫扩展欧几里德QA ...
- java设计模式-----11、代理模式
Proxy模式又叫做代理模式,是构造型的设计模式之一,它可以为其他对象提供一种代理(Proxy)以控制对这个对象的访问. 所谓代理,是指具有与代理元(被代理的对象)具有相同的接口的类,客户端必须通过代 ...
- java容器类2:Map及HashMap深入解读
Java的编程过程中经常会和Map打交道,现在我们来一起了解一下Map的底层实现,其中的思想结构对我们平时接口设计和编程也有一定借鉴作用.(以下接口分析都是以jdk1.8源码为参考依据) 1. Map ...
- JAVA面向对象思想
1.面向对象的基本特征 面向对象具有三个基本特征:封装.多态.继承. 1)封装 封装指的是将对象的实现细节隐藏起来,然后通过一些公用方法来暴露该对象的功能. ...
- css学习の第六弹—样式设置小技巧
一.css样式设置小技巧>>1.行内元素水平居中是通过给父元素设置 text-align:center 来实现的.html代码:<body> <div class=&qu ...
- jqgrid 同列不同行的<select>不相同
如图下所示: 简述原理:设置好表格 所需的字段变量以及字段属性,从后台获取j数据后,在js文件中把数据组合成json格式的字符串,利用字段属性把json数据转换成select,就能实现同列不同行sel ...
- [转][RabbitMQ+Python入门经典] 兔子和兔子窝
[转][RabbitMQ+Python入门经典] 兔子和兔子窝 http://blog.csdn.net/linvo/article/details/5750987 RabbitMQ作为一个工业级的消 ...