VS2019的SDL2项目配置

news2024/10/5 10:17:28

库下载

Simple DirectMedia Layer - Homepage

对于Windows下使用VS2019开发的选手,应该直接选VC后缀了。

VS目录配置

首先VS2019创建一个空项目,新加入一个源文件,代码如下:

/*This source code copyrighted by Lazy Foo' Productions 2004-2023
and may not be redistributed without written permission.*/

//Using SDL and standard IO
#include <SDL.h>
#include <stdio.h>

//Screen dimension constants
const int SCREEN_WIDTH = 640;
const int SCREEN_HEIGHT = 480;

int main(int argc, char* args[])
{
	//The window we'll be rendering to
	SDL_Window* window = NULL;

	//The surface contained by the window
	SDL_Surface* screenSurface = NULL;

	//Initialize SDL
	if (SDL_Init(SDL_INIT_VIDEO) < 0)
	{
		printf("SDL could not initialize! SDL_Error: %s\n", SDL_GetError());
	}
	else
	{
		//Create window
		window = SDL_CreateWindow("SDL Tutorial", SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOS_UNDEFINED, SCREEN_WIDTH, SCREEN_HEIGHT, SDL_WINDOW_SHOWN);
		if (window == NULL)
		{
			printf("Window could not be created! SDL_Error: %s\n", SDL_GetError());
		}
		else
		{
			//Get window surface
			screenSurface = SDL_GetWindowSurface(window);

			//Fill the surface white
			SDL_FillRect(screenSurface, NULL, SDL_MapRGB(screenSurface->format, 0x00, 0xFF, 0xFF));

			//Update the surface
			SDL_UpdateWindowSurface(window);

			//Hack to get window to stay up
			SDL_Event e; bool quit = false; while (quit == false) { while (SDL_PollEvent(&e)) { if (e.type == SDL_QUIT) quit = true; } }
		}
	}

	//Destroy window
	SDL_DestroyWindow(window);

	//Quit SDL subsystems
	SDL_Quit();

	return 0;
}

上述代码的作用是显示一个绿色的窗口,如下图

代码复制完毕后,开始一系列复杂的设置操作了:

在这里右键,选择最下面的属性。

然后解压刚刚下载的SDL2-devel-2.28.3-VC.zip,解压后将头文件和静态库文件的路径设置到下面两个选项中,从而完成编译和链接的过程,能够进行示例程序的编译(仅仅是编译通过,并不是可以运行)。

此时编译完成,链接的库指定如下:

可以尝试运行。

注意,这里运行时会提示“找不到SDL2.dll”,这是因为上面x64目录下的dll路径运行程序并不知道。

有两种解决方法,第一是手动将dll拷贝到运行路径里面,第二是设置一下运行路径,第三是设置环境变量。我们选择第二种,因为比较简单。

将这个目录设置为dll所在目录,再次运行,可以完成运行。

值得一提的是,上面调试的工作路径有的时候需要指向资源路径,如果dll和资源路径一起混放,会稍显混乱,因此也可以设置一下环境变量,设置完之后需要关闭并重新打开VS2019才会生效。

然后就是一路双击,把刚刚的路径粘贴到空白处,点击应用。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1032939.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【C语言】字符函数和字符串函数(含模拟)

前言&#xff1a; 在做OJ题或阅读代码时或多或少会遇到一些字符函数和字符串函数&#xff0c; 如果不认识或不熟悉就会造成不便&#xff0c; 本篇文章主要是为了这方面而存在&#xff0c; 此篇介绍各个字符串的功能与使用方法&#xff0c; 下一篇会讲解如何模拟这些函数 重点&a…

【亲测有效】3步实现 微信小程序内接入小程序客服,网页端客服工具与移动端小程序客服工具使用方法,使用入口,并设置当前客服状态

背景&#xff1a;多数服务类小程序内回存在微信在线客服功能 微信小程序内接入小程序客服 第一步登录“微信公众平台”点击“客服”功能&#xff0c;并设置微信客服 第二步登录在小程序所需客服的位置插入以下代码 <button open-type"contact" bindcontact"…

通过410s读取电表数据并接入物联网平台

通过410s读取电表数据并接入物联网平台 设备接线准备设备调试代码实现Modbus TCP Client 读取电表数据读取寄存器数据转成32bit Float格式然后使用modbusTCP Client 读取数据 使用mqtt协议接入物联网平台最终代码实现 设备接线准备 设备调试 代码实现 Modbus TCP Client 读取…

【PLC GX Works2】创建一个工程

PLC GX Works2软件安装 https://www.jcpeixun.com/software/375 程序编写 1、工程中找到新建 2、新建 3、导航栏中选择第三行第一个&#xff0c;是全局软元件注释 4、修改软元件名x0为点动按钮&#xff0c;y1为电机&#xff0c;之后关闭即可。 5、左母线&#xff0c;右…

精彩回放|Fortinet保障联网车辆全生命周期信息安全

随着AI、云计算、物联网等技术的不断发展&#xff0c;汽车行业正在经历深刻的变革。然而&#xff0c;这种变革不仅带来了前所未有的机遇&#xff0c;也带来了许多挑战&#xff0c;其中最突出的是信息安全问题。在为期五期的垂直行业网络安全案例讲座的第一期“汽车行业网络安全…

好用的记笔记app选哪个?

当你在日常生活中突然获得了一个灵感&#xff0c;或者需要记录会议的重要内容&#xff0c;或者是学校课堂上的笔记&#xff0c;你通常会拿出手机&#xff0c;因为它总是在你身边&#xff0c;随时可用。这时候&#xff0c;一款好的记笔记App可以让你事半功倍。 敬业签是一款全面…

【在Ubuntu部署Docker项目】— PROJECT#1

一、说明 让我们深入了解 Docker。用docker构建web服务器。我们正在计划开发JavaScript API&#xff0c;建立MySQL数据库&#xff0c;并创建一个 PHP 网站使用 API 服务。Php Node.js Mysql — DockerSeries — Episode#1 二、系统架构概述 我们要构建的容器&#xff0c;是三…

多边形碰撞检测算法

1、AABB碰撞检测算法 AABB碰撞检测指轴对齐碰撞箱(Axis-aligned Bounding Box)&#xff0c;是分别从x轴向和y轴向进行碰撞检测的算法。即对于需要检测的物体A和物体B我们需要将其用A盒和B盒套起来&#xff0c;判断A盒和B盒在x轴向和y轴向是否发生碰撞&#xff0c;只有在x轴向和…

电气设备预防维护包含哪些内容

电力系统的可靠性对于工业和基础设施运行至关重要&#xff0c;而电气设备预防维护是确保电力系统长期安全可靠运行的关键。本文将重点介绍电气设备预防维护的标准和操作过程&#xff0c;以确保电力系统的稳定性和安全性。 电气设备预防维护的标准 电气设备预防维护需要遵循一系…

Linux怎么创建符号链接(也叫软链接)

2023年9月21日&#xff0c;周四下午 简单来说&#xff0c;符号链接就相当于Windows中的快捷方式。 用如下命令就可以在Linux中创建符号链接&#xff1a; ln -s 被链接的文件 创建的符号链接的存放路径

Vue3如何优雅的加载大量图片?

前端面试题库 &#xff08;面试必备&#xff09; 推荐&#xff1a;★★★★★ 地址&#xff1a;前端面试题库 表妹一键制作自己的五星红旗国庆头像&#xff0c;超好看 最近开发了一个功能&#xff0c;页面首页会加载大量的图片&#xff0c;初次进入页面时&#xff…

干货,某大厂小姐姐深夜让我说出了秘密-springboot发邮件 原创

后端依赖 <!--引入mail依赖--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-mail</artifactId></dependency><!--使用thymeleaf构建邮件模板--><dependency><groupId&…

服务监控与优化之负载均衡之负载最低优先

相关文章&#xff1a; 自己动手写分布式任务调度框架用 Java 代码实现负载均衡的五种常见算法手写实现RPC框架&#xff08;带注册中心&#xff09;本文完整代码地址&#xff1a;https://gitee.com/dongguabai/blog/tree/master/loadbalance 前段时间&#xff0c;我们有一台定…

【喜讯】斯歌上榜:中国信通院《高质量数字化转型产品及服务全景图》

喜讯&#xff01;9月15号&#xff0c;上海斯歌旗下品牌“纳比云”凭借卓越的自研成果及社会影响力&#xff0c;在众多候选企业中脱颖而出&#xff0c;成功入选由中国信通院发布的2023《高质量数字化转型产品及服务全景图》&#xff08;技术开发领域&#xff09;。 以下为中国信…

项目经理的“四定、五起、六法”工作法

大家好&#xff0c;我是老原。 说来&#xff0c;我也工作十多年了&#xff0c;就像很多刚入门的项目经理一样&#xff0c;一开始不知道怎么预设风险、沟通和团队协调不够好&#xff1b; 有的人就可以规避风险&#xff0c;人际往来和团队管理都信手拈来&#xff0c;整个项目顺…

【问题记录】解决“命令行终端”和“Git Bash”操作本地Git仓库时出现 中文乱码 的问题!

环境 Windows 11 家庭中文版git version 2.41.0.windows.1 问题情况 在使用 “命令行终端” 和 “Git Bash” 在本地Git仓库敲击命令时&#xff0c;对中文名称文件显示一连串的数字&#xff0c;如下所示&#xff1a;这种情况通常是由于字符编码设置不正确所引起的 解决办法 设置…

uniapp项目实践总结(二十)URLScheme 协议知识总结

导语&#xff1a;在日常开发过程中&#xff0c;我们经常可以碰到很多的调起某个应用&#xff0c;打开唤醒某个 APP&#xff0c;链式启动 App 等场景&#xff0c;背后就涉及到了 URLScheme 协议的相关知识&#xff0c;下面就简单介绍一下。 目录 简介常见 URL Scheme跳转方法实…

Vosviewer的安装与使用

Vosviewer的安装与使用 1 安装2 使用参考&#xff1a; 关于vosviewer我就不过多介绍了。 vosviewer与citespace有什么区别?在这里可以引用一下知乎的文章简要说明一下&#xff1a; 1.操作难易VOSviewer很简单&#xff0c;在官网下载的时候会附带一个英文手册&#xff0c;稍微…

YOLOv5、YOLOv8改进:Decoupled Head解耦头

目录 1.Decoupled Head介绍 2.Yolov5加入Decoupled_Detect 2.1 DecoupledHead加入common.py中&#xff1a; 2.2 Decoupled_Detect加入yolo.py中&#xff1a; 2.3修改yolov5s_decoupled.yaml 1.Decoupled Head介绍 Decoupled Head是一种图像分割任务中常用的网络结构&#…

中科驭数DPU芯片K2斩获2023年“中国芯”优秀技术创新产品奖

2023年9月20日&#xff0c;中科驭数DPU芯片K2在2023年琴珠澳集成电路产业促进峰会暨第十八届“中国芯”颁奖仪式上荣获“中国芯”优秀技术创新产品奖。 “中国芯”集成电路优秀产品榜单是由国家工信部门指导、中国电子信息产业发展研究院举办的行业权威评选活动。自2006年以来…