挖坑
——————————
首先,先实现FFmpeg+SDL+MFC实现图形界面视频播放器。
在搜MFC的时候发现了这样的说法。所以对于MFC大概需要浅尝辄止吧。
1.新建一个MFC工程文件(由于我的VS中的VC++安装不完整,所以一开始无法新建MFC工程文件,需在控制面板的程序卸载中对VS2015进行修改,具体我也不知道需要哪个,总之我把对应的VC++目录下的未安装文件都勾上了。)
安装更新也是属于被屏蔽的,记得找个好点梯子,稳定点比较好,不然折腾死人(一分钱一分货吧,不然很耗时间的╮(╯▽╰)╭,中途断掉又要重来,我能怎么办啊我也很绝望啊)。
然后就可以新建MFC工程啦。
点击下一步
选择基于对话框
点击完成之后就出现了如下图所示:
接下来开始设置控件
点击 菜单栏 --> 视图--->工具箱,打开工具箱。
常用控件有:Button,Edit Control,Static Text等
找到“属性”选项卡
可以在“Caption”属性上修改控件上的文字
可以在“ID”属性上修改控件上的ID(ID是控件的标识,不可重复)
选中这个执行
然后弹出对话框如下图所示:
这就是一个简单的编写MFC的过程。
简单地了解了MFC之后,现在我们需要来实现FFmpeg + SDL + MFC实现图形界面视频播放器。
主要就是将FFmpeg和SDL这两个资源整合进MFC。
FFmpeg解码器与MFC的整合
需要将视频文件路径从MFC界面上的 Edit Control 控件传递给FFmpeg解码器
GetWindowText()
SDL与MFC的整合
需要将SDL显示的画面绘制到MFC的 Picture Control 控件上。
SDL_CreateWindowFrom()
实现一个图形界面的视频播放器
用VS2015直接打开VS2010的文件,然后发现编译报错。
在公共头文件里或者产生这些警告的cpp文件的开头加入pragma warning。
#pragma warning(disable:4005 4312 4244 4520 4018 4267 4800 4996 4482 4101 4002 4102 4101)
但是,还是报错,于是我强制关闭了警告报错。
1>ffplaycore.cpp(1692): error C3688: 文本后缀“PRId64”无效;未找到文文本运算符或文本运算符模板“operator """"PRId64”
原因分析
这种错误一般是在对下载得到的代码进行编译时出现,实际是文件编码问题。这时下载得到的文件编码为UTF-8,而Windows中文版默认使用GB2312,对于UTF-8编码的某些字符,在中文版VS下就容易因解码错误导致乱码造成编译错误。
解决方法
将出错的文件编码格式转换为GB2312即可(一般不会所有文件都出错)。
双击此错误会跳到出错的文件,这时在Visual Studio菜单栏上点击“文件”->“高级保存选项”,在“编码”下拉框选择“简体中文(GB2312)”,然后“确定”即可。重新编译就没问题啦!
但是还是不行。。
分析一下发现这里只是一个字符串常量,所以应该是可以删去报错的字符串的。
然后出现新的错误:
解决办法
选择:使用链接时间代码生成
这里需要改成跟上面一样。
开始在命令行进行设置
写入:/SAFESEH:NO
折腾到这里,终于成功编译。
选择一个本地文件,进行播放。
参考链接:
http://blog.csdn.net/leixiaohua1020/article/details/28685327
https://www.polarxiong.com/archives/%E8%A7%A3%E5%86%B3Visual-Studio%E7%BC%96%E8%AF%91%E9%94%99%E8%AF%AF-%E6%96%87%E6%9C%AC%E5%90%8E%E7%BC%80%E6%97%A0%E6%95%88-%E6%9C%AA%E6%89%BE%E5%88%B0%E6%96%87%E6%96%87%E6%9C%AC%E8%BF%90%E7%AE%97%E7%AC%A6%E6%88%96%E6%96%87%E6%9C%AC%E8%BF%90%E7%AE%97%E7%AC%A6%E6%A8%A1%E6%9D%BF.html
http://blog.csdn.net/hejjunlin/article/details/68921811