OpenGL+VS2019+Win32/x64环境配置

本文详细介绍了在Windows环境下,如何配置OpenGL的开发环境,包括使用GLFW和GLEW库,以及在Visual Studio 2019中创建项目模板,简化新OpenGL项目的启动流程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


一、准备工作

有关OpenGL的官方介绍请参看OpenGL官方网址

简单来说,为了使用OpenGL必需分两步初始化OpenGL,第一步创建OpenGL上下文,在本文中使用GLFW,第二步加载必要的函数,在本文中使用GLEW

1.1 编译GLFW

鉴于GLFW官网包含的预编译的二进制文件经常无法正常运行,所以推荐下载源码,然后在本机进行编译。

首先使用CMake生成VS项目文件,在使用CMake的时候需要区分Win32和x64平台:
生成GLFW项目
然后使用Visual Studio编译生成的.sln文件,生成相应的库,同时需要区分Win32和x64平台:
请添加图片描述

1.2 GLEW

从官网下载预编译的文件即可。

1.3 创建库文件夹

为了创建项目模板,创建一个名为OpenGLTemplate的文件夹,里面包含两个子文件夹分别为include和lib,文件夹结构如下:

  • OpenGLTemplate
    • include
      • GL
      • GLFW
    • lib
      • Win32
      • x64

在include文件夹下包含下载的GLFW文件夹和GL文件夹。
include文件夹
在lib文件夹下的Win32和x64文件夹里分别包含在Win32平台和x64平台下编译生成的glfw3.lib,同时包含下载的GLEW文件夹下的glew32.lib、glew32s.lib。
lib文件夹

二、VS配置

根据上边生成的OpenGLTemplate文件夹,在VS项目属性页分别进行如下配置(若不想创建项目模板,则直接找到下载的文件路径进行配置即可):
包含目录
附加库目录
附加依赖项
需要注意的是,在运行程序时需要将glew32.dll文件复制到Release或Debug文件夹下。

三、例子

创建新项目,该程序生成一个绿色的600x300的窗口,源文件如下:

#include <GL/glew.h>
#include <GLFW/glfw3.h>
#include <iostream>
using namespace std;

void init(GLFWwindow* window)
{}

void display(GLFWwindow* window, double CurrentTime)
{
	glClearColor(0, 1, 0, 1);
	glClear(GL_COLOR_BUFFER_BIT);
}

int main()
{
	if (!glfwInit())
		exit(EXIT_FAILURE);

	glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 3);
	glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 3);

	GLFWwindow* window = glfwCreateWindow(600, 300, "OpenGLProject", nullptr, nullptr);

	glfwMakeContextCurrent(window);

	if (glewInit() != GLEW_OK)
		exit(EXIT_FAILURE);

	glfwSwapInterval(1);

	init(window);

	while (!glfwWindowShouldClose(window))
	{
		display(window, glfwGetTime());

		glfwSwapBuffers(window);

		glfwPollEvents();
	}

	glfwDestroyWindow(window);
	glfwTerminate();

	exit(EXIT_SUCCESS);
}

程序运行结果如下:
运行结果

四、使用Visual Studio项目模板

因为使用OpenGL需要配置库的位置,因此创建Visual Studio模板将使启动新的OpenGL项目变得更容易,下面介绍如何创建和使用Visual Studio模板。

4.1 创建模板

启动Visual Studio创建新的空C++项目,选择模式(Debug或Release)和平台(x86或x64),然后进行与上边第二步相同的配置即可。进行完上述两步操作后就可以创建模板了。创建模板通过“项目”菜单并选择“导出模板”,指定模板名称和图标后点击完成即可。
模板名称
导出模板

4.2 使用模板

创建新项目时,在下图搜索框中输入刚才创建的模板名称即可选择使用模板创建项目
使用模板

引用提供了一段代码,这段代码是用于在Luckysheet中实现对单元格格式的修改。其中的`luckysheet.setCellFormat`函数被用于设置单元格的格式。该函数接受三个参数,分别是行号、列号格式名称(在这段代码中为'qp')。通过调用该函数,可以将指定单元格的格式设置为指定的格式。这段代码中还包括了一些事件处理函数,用于在单元格内容被修改或清空时,自动执行相应的操作。 引用指出了在Excel表格Luckysheet中使用英文状态的单引号(')可以实现一些格式转换的功能。然而,在Luckysheet中使用单引号后,无论是手动删除、修改,还是使用右键清空内容,都无法去除单引号。这个问题通过在代码中添加相关逻辑进行处理来解决。 引用提到了通过查看Luckysheet的源码发现,当单元格出现英文状态的单引号后,会多出一个名为`qp`的参数,并且该参数的值为1。初步判断,这个参数用于标识单引号的存在。 综上所述,`luckysheet.setCellFormat`函数是用于设置Luckysheet中单元格格式的函数,可以通过调用该函数来设置指定单元格的格式。在使用英文状态的单引号后,Luckysheet会自动添加一个名为`qp`的参数,并将其值设为1,用于标识单引号的存在。通过添加相关处理逻辑,可以解决单引号无法去除的问题。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [Luckysheet使用中遇到的问题汇总](https://blog.youkuaiyun.com/snowflakelm/article/details/123474871)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Spring_24

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值