Microsoft Visual Studio2019环境下搭建SDL开发环境

参考链接

  • 《基于 FFmpeg + SDL 的视频播放器的制作》课程的视频_雷霄骅的博客-CSDN博客_雷霄骅ffmpeg视频教程
  • 小学期课程资料 - 基于FFmpeg+SDL的视频播放器的制作.zip_免费高速下载|百度网盘-分享无限制
  • 辅助参考链接
  • VS自动链接到Windows上随vcpkg安装的SDL2库 | 码农俱乐部 - Golang中国 - Go语言中文社区
  • Simple DirectMedia Layer - SDL version 2.0.22 (stable)
  • Microsoft Visual Studio2019环境下搭建FFmpeg开发环境_MY CUP OF TEA的博客-CSDN博客

注意事项

  • vcpkg如果不指定具体安装方式,默认安装x86架构的包
  • vcpkg本人安装位置 C:\Users\32157\vcpkg

Win安装/配置SDL2

  • 使用./vcpkg.exe search sdl2 查找sdl2的对应版本
  • 本次安装的是 sdl2 2.0.22#1 x86架构

  • 使用命令  ./vcpkg.exe install sdl2 进行安装

  •  将下载的库集成到全局中
  • ./vcpkg.exe integrate install

测试

测试代码

  • 参考链接
    • 阿里云登录 - 欢迎登录阿里云,安全稳定的云计算服务平台
    • SDL 库安装、环境配置与使用 - 简书
  • #define SDL_MAIN_HANDLED  需要加上这句话,否则会出错
    • 显示 :无法解析的外部符号 _main,该符号在函数 "int __cdecl invoke_main(void)" (?invoke_main@@YAHXZ) 中被引用 
  • //由于SDL内部重新定义了main,因此main函数需要写成如下形式 int main(int argc,char* argv[])
    • 添加 #define SDL_MAIN_HANDLED  这个之后,即使main函数为空,也不会报错

测试代码1

// test_ffmpeg.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
//
#define SDL_MAIN_HANDLED
#include <iostream>
#include <SDL2/SDL.h>//由于SDL内部重新定义了main,因此main函数需要写成如下形式
int main(int argc,char* argv[])
{//初始化SDLif ((SDL_Init(SDL_INIT_AUDIO | SDL_INIT_VIDEO) == -1)) {//初始化失败,打印错误信息std::cout << "Could not initialize SDL:" << SDL_GetError();}else {std::cout << "SDL initialize OK!";}//结束SDLSDL_Quit();return 0;
}// 运行程序: Ctrl + F5 或调试 >“开始执行(不调试)”菜单
// 调试程序: F5 或调试 >“开始调试”菜单// 入门使用技巧: 
//   1. 使用解决方案资源管理器窗口添加/管理文件
//   2. 使用团队资源管理器窗口连接到源代码管理
//   3. 使用输出窗口查看生成输出和其他消息
//   4. 使用错误列表窗口查看错误
//   5. 转到“项目”>“添加新项”以创建新的代码文件,或转到“项目”>“添加现有项”以将现有代码文件添加到项目
//   6. 将来,若要再次打开此项目,请转到“文件”>“打开”>“项目”并选择 .sln 文件

 测试代码2

// test_ffmpeg.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
//
#define SDL_MAIN_HANDLED
#include <iostream>
#include <SDL2/SDL.h>//由于SDL内部重新定义了main,因此main函数需要写成如下形式
int main(int argc, char* argv[])
{SDL_Window* window = SDL_CreateWindow("demo", SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED, 640, 480, SDL_WINDOW_SHOWN);SDL_Renderer* renderer = SDL_CreateRenderer(window, -1, SDL_RENDERER_ACCELERATED);bool quit = false;SDL_Event event;SDL_SetRenderDrawColor(renderer, 255, 255, 255, 255);while (!quit) {while (SDL_PollEvent(&event)) {switch (event.type) {case SDL_QUIT:quit = true;break;case SDL_MOUSEMOTION:if (SDL_GetMouseState(NULL, NULL) & SDL_BUTTON(1))SDL_RenderDrawPoint(renderer, event.motion.x, event.motion.y);break;}}SDL_RenderPresent(renderer);SDL_Delay(1000 / 60);}SDL_DestroyWindow(window);SDL_DestroyRenderer(renderer);return 0;
}// 运行程序: Ctrl + F5 或调试 >“开始执行(不调试)”菜单
// 调试程序: F5 或调试 >“开始调试”菜单// 入门使用技巧: 
//   1. 使用解决方案资源管理器窗口添加/管理文件
//   2. 使用团队资源管理器窗口连接到源代码管理
//   3. 使用输出窗口查看生成输出和其他消息
//   4. 使用错误列表窗口查看错误
//   5. 转到“项目”>“添加新项”以创建新的代码文件,或转到“项目”>“添加现有项”以将现有代码文件添加到项目
//   6. 将来,若要再次打开此项目,请转到“文件”>“打开”>“项目”并选择 .sln 文件

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

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

相关文章

不关注公众号可以获取openid吗_微信公众号粉丝迁移

目录 [toc] 微信公众号迁移 正常的公众号迁移直接通过微信操作就可以&#xff0c;如下图。但是因为udb数据里面存的是迁移前公众号的openid以及unionid,需要自行获取新旧openid以及unionid。 旧的用户信息要在迁移之前获取&#xff0c;第三步点击同意之后就公众号的接口就调不通…

建筑专业规范大全 2020版_房屋建筑工程现行规范标准目录汇编(2020版)—建筑电气...

房屋建筑工程现行规范标准目录汇编(2020版)建筑电气规范编号规范名称GB 50034-2013建筑照明设计标准GB 50052-2009供配电系统设计规范GB 50053-201320kV及以下变电所设计规范GB 50057-2010建筑物防雷设计规范GB 50147-2010电气装置安装工程 高压电器施工及验收规范GB 50148-201…

基于Microsoft Visual Studio2019环境编写ffmpeg视频解码代码

旧代码 旧代码使用了很多过时的API&#xff0c;这些API使用后&#xff0c;vs会报编译器警告 (级别 3) C4996的错误即 函数被声明为已否决 报 C4996的错误 // test_ffmpeg.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。 // #define SDL_MAIN_HANDLED …

16进制转double dotnet_终于把计算机进制弄明白了!

And theres one thing that I need from you我只需要你为我做一-件事Can you come through, through待在我的身边就好Through, yeah你可以抚慰一切不满And theres one thing that I need from you你可以过来Can you come through?待在我的身边吗-comethruJeremy Zucker进制进制…

FFmpeg源代码简单分析-架构图-解码

参考链接 FFmpeg源代码结构图 - 解码_雷霄骅的博客-CSDN博客_ffmpeg雷霄骅函数背景色 函数在图中以方框的形式表现出来。不同的背景色标志了该函数不同的作用&#xff1a; 粉红色背景函数&#xff1a;FFmpeg的API函数。白色背景的函数&#xff1a;FFmpeg的内部函数。黄色背景…

JUnit单元测试笔记

#01 JUnit简介 1.在项目工程中的Library,add 一个JUnit的Jar包&#xff0c;按需要添加JUnit 3 或 JUnit 4&#xff08;分为被测试类与测试类较佳&#xff09;。 2.单元测试是由程序员完成的。 3.Java 5 之前的版本只能 用JUnit 4前的版本&#xff08;因为JUnit 4用到Java 5的…

jqery获取每个月天数_三年级《年、月、日》单元重要知识点整理汇总,以及难点题型解析...

昨天给大家分享了《计算经过的时间》问题&#xff0c;今天给大家分享的是《年、月、日》单元中重要的几个知识点&#xff0c;以及难点题型解析。知识点1 感知年、月、日一、结合生活实际&#xff0c;看看下面事情需要经过多少时间。跑完100米大约需要经过十几(秒)。2.打一场篮球…

FFmpeg源代码简单分析-架构图-编码

参考链接 FFmpeg源代码结构图 - 编码_雷霄骅的博客-CSDN博客_ffmpeg 源码函数背景色 函数在图中以方框的形式表现出来。不同的背景色标志了该函数不同的作用&#xff1a; 粉红色背景函数&#xff1a;FFmpeg的API函数。白色背景的函数&#xff1a;FFmpeg的内部函数。黄色背景的…

为革命,保护视力——为Eclipse更换暗黑皮肤及编辑页面的字体颜色主题

1.在Eclipse中的菜单栏的Help -> Eclipse Market 的 Search栏中输入 Eclipse Moonrise UI Theme &#xff0c;之后自己执生啦&#xff08;确保上网配置正确&#xff09;。 2.与上面操作类似&#xff0c;输入 Eclipse Color Theme&#xff0c;选择安装。 3.选择菜单栏的Win…

python函数可以作为容器对象吗_正确理解Python函数是第一类对象

正确理解 Python函数&#xff0c;能够帮助我们更好地理解 Python 装饰器、匿名函数(lambda)、函数式编程等高阶技术。函数(Function)作为程序语言中不可或缺的一部分&#xff0c;太稀松平常了。但函数作为第一类对象(First-Class Object)却是 Python 函数的一大特性。那到底什么…

FFmpeg源代码简单分析-通用- av_register_all()

参考链接 ffmpeg 源代码简单分析 &#xff1a; av_register_all()_雷霄骅的博客-CSDN博客_av_register_all()从学龄前开始解读FFMPEG代码 之 avcodec_register_all函数_zzyincsdn的博客-CSDN博客

@suppressWarnings(unchecked)及其相关属性在Java中意思

首先suppressWarnings("unchecked")是JDK1.5中新加入的Annotation语法&#xff0c;用来压制警告信息的。 编写代码时&#xff0c;有时会提示一些警告&#xff08;例如&#xff1a;使用已经废弃的类&#xff0c;没有加入泛型等&#xff09;&#xff0c;如果不想让程序…

FFmpeg源代码简单分析-通用-avcodec_register_all()

参考链接 ffmpeg 源代码简单分析 &#xff1a; avcodec_register_all()_雷霄骅的博客-CSDN博客

pythonsklearn乳腺癌数据集_Python的Sklearn库中的数据集

一、Sklearn介绍scikit-learn是Python语言开发的机器学习库&#xff0c;一般简称为sklearn&#xff0c;目前算是通用机器学习算法库中实现得比较完善的库了。其完善之处不仅在于实现的算法多&#xff0c;还包括大量详尽的文档和示例。其文档写得通俗易懂&#xff0c;完全可以当…

FFmpeg源代码简单分析-通用- 内存的分配和释放(av_malloc()、av_free()等)

参考链接 FFmpeg源代码简单分析&#xff1a;内存的分配和释放&#xff08;av_malloc()、av_free()等&#xff09;_雷霄骅的博客-CSDN博客_av_malloc 内容介绍 内存操作的常见函数位于libavutil\mem.c中本文记录最常使用的几个函数&#xff1a; av_malloc()av_realloc()av_mal…

面试题——死锁的实现

public class DeadLock {public static Object Chopstick_1 new Object();public static Object Chopstick_2 new Object();public static void main(String[] args) {final DeadLock deadLock new DeadLock();// 第一个线程 new Thread(new Runnable() {public void run()…

python回归分析实验_python线性回归实验

实验算法python线性回归实验【实验名称】Python线性回归实验【实验要求】掌握Python线性回归模型应用过程&#xff0c;根据模型要求进行数据预处理&#xff0c;建模&#xff0c;评价与应用&#xff1b;【背景描述】线性回归是利用数理统计中回归分析&#xff0c;来确定两种或两…

FFmpeg源代码简单分析-通用-结构体分析-AVFormatContext

参考链接 FFMPEG结构体分析&#xff1a;AVFormatContext_雷霄骅的博客-CSDN博客_avformatcontext AVFormatContext AVFormatContext是包含码流参数较多的结构体结构体的定义位于libavformat/avformat.h/*** Format I/O context.//格式化 I/O 上下文* New fields can be added…

log4j详解与实战

log4j详解与实战 http://www.iteye.com/topic/378077

plsql如何显示表结构图_【论文攻略】排版技巧——如何用 Word 编辑参考文献

每个需要写毕业论文的朋友都会发现&#xff0c;修改文献是一件非常痛苦的事情&#xff0c;虽然现在也有很多软件可以编排参考文献&#xff0c;其实 word 本身就可以。采用合适的编辑方法会方便地做到整齐,规范, 自动排序和交叉引用。 1. 以尾注的方式插入第一个参考文献将光标定…