可以直接使用的源码:http://download.youkuaiyun.com/detail/dafenqie/9792806
1、首先创建一个基于对话框的应用程序;
2、创建完成后,把VLC的头文件目录vlc拷贝到工程目录下,拷贝libvlc.dll、libvlccore.dll、libvlc.lib、libvlccore.lib和plugins文件夹到工程目录的lib文件夹(没有就新创建一个)下。
3、配置开发环境:
1)增加头文件的包含目录:
2)配置附加库目录:
2)配置附加依赖项。
4、编译过程中出现如下错误:
1>d:\test\testvlc\testvlc\vlc\libvlc_structures.h(46): error C2146: 语法错误: 缺少“;”(在标识符“libvlc_time_t”的前面)
1>d:\test\testvlc\testvlc\vlc\libvlc_structures.h(46): error C4430: 缺少类型说明符- 假定为int。注意: C++ 不支持默认 int
1>d:\test\testvlc\testvlc\vlc\libvlc_structures.h(46): error C4430: 缺少类型说明符- 假定为int。注意: C++ 不支持默认 int
1>d:\test\testvlc\testvlc\vlc\libvlc_media.h(149): error C2146: 语法错误: 缺少“;”(在标识符“i_codec”的前面)
1>d:\test\testvlc\testvlc\vlc\libvlc_media.h(149): error C4430: 缺少类型说明符- 假定为int。注意: C++ 不支持默认int
1>d:\test\testvlc\testvlc\vlc\libvlc_media.h(149): error C4430: 缺少类型说明符- 假定为int。注意: C++ 不支持默认int
1>d:\test\testvlc\testvlc\vlc\libvlc_media.h(419): error C2146: 语法错误: 缺少“;”(在标识符“libvlc_media_get_duration”的前面)
1>d:\test\testvlc\testvlc\vlc\libvlc_media.h(419): error C4430: 缺少类型说明符- 假定为int。注意: C++ 不支持默认int
1>d:\test\testvlc\testvlc\vlc\libvlc_media.h(419): error C2086: “int libvlc_time_t”: 重定义
1> d:\test\testvlc\testvlc\vlc\libvlc_structures.h(46) : 参见“libvlc_time_t”的声明
1>d:\test\testvlc\testvlc\vlc\libvlc_media.h(419): error C4430: 缺少类型说明符- 假定为int。注意: C++ 不支持默认int
1>d:\test\testvlc\testvlc\vlc\libvlc_media_player.h(412): error C2061: 语法错误: 标识符“uint32_t”
1>d:\test\testvlc\testvlc\vlc\libvlc_media_player.h(420): error C2146: 语法错误: 缺少“;”(在标识符“libvlc_media_player_get_agl”的前面)
1>d:\test\testvlc\testvlc\vlc\libvlc_media_player.h(420): error C4430: 缺少类型说明符- 假定为int。注意: C++ 不支持默认int
1>d:\test\testvlc\testvlc\vlc\libvlc_media_player.h(420): error C4430: 缺少类型说明符- 假定为int。注意: C++ 不支持默认int
1>d:\test\testvlc\testvlc\vlc\libvlc_media_player.h(436): error C2061: 语法错误: 标识符“uint32_t”
1>d:\test\testvlc\testvlc\vlc\libvlc_media_player.h(447): error C2146: 语法错误: 缺少“;”(在标识符“libvlc_media_player_get_xwindow”的前面)
1>d:\test\testvlc\testvlc\vlc\libvlc_media_player.h(447): error C4430: 缺少类型说明符- 假定为int。注意: C++ 不支持默认int
1>d:\test\testvlc\testvlc\vlc\libvlc_media_player.h(447): error C2086: “int uint32_t”:重定义
1> d:\test\testvlc\testvlc\vlc\libvlc_media_player.h(420) : 参见“uint32_t”的声明
1>d:\test\testvlc\testvlc\vlc\libvlc_media_player.h(447): error C4430: 缺少类型说明符- 假定为int。注意: C++ 不支持默认int
1>d:\test\testvlc\testvlc\vlc\libvlc_media_player.h(613): error C2146: 语法错误: 缺少“;”(在标识符“libvlc_media_player_get_length”的前面)
1>d:\test\testvlc\testvlc\vlc\libvlc_media_player.h(613): error C4430: 缺少类型说明符- 假定为int。注意: C++ 不支持默认int
1>d:\test\testvlc\testvlc\vlc\libvlc_media_player.h(613): error C2086: “int libvlc_time_t”: 重定义
1> d:\test\testvlc\testvlc\vlc\libvlc_structures.h(46) : 参见“libvlc_time_t”的声明
1>d:\test\testvlc\testvlc\vlc\libvlc_media_player.h(613): error C4430: 缺少类型说明符- 假定为int。注意: C++ 不支持默认int
1>d:\test\testvlc\testvlc\vlc\libvlc_media_player.h(621): error C2146: 语法错误: 缺少“;”(在标识符“libvlc_media_player_get_time”的前面)
1>d:\test\testvlc\testvlc\vlc\libvlc_media_player.h(621): error C4430: 缺少类型说明符- 假定为int。注意: C++ 不支持默认int
1>d:\test\testvlc\testvlc\vlc\libvlc_media_player.h(621): error C2086: “int libvlc_time_t”: 重定义
1> d:\test\testvlc\testvlc\vlc\libvlc_structures.h(46) : 参见“libvlc_time_t”的声明
1>d:\test\testvlc\testvlc\vlc\libvlc_media_player.h(621): error C4430: 缺少类型说明符- 假定为int。注意: C++ 不支持默认int
1>d:\test\testvlc\testvlc\vlc\libvlc_media_player.h(630): error C2061: 语法错误: 标识符“libvlc_time_t”
1>d:\test\testvlc\testvlc\vlc\libvlc_events.h(152): error C2146: 语法错误: 缺少“;”(在标识符“new_time”的前面)
1>d:\test\testvlc\testvlc\vlc\libvlc_events.h(152): error C4430: 缺少类型说明符- 假定为int。注意: C++ 不支持默认int
1>d:\test\testvlc\testvlc\vlc\libvlc_events.h(152): error C4430: 缺少类型说明符- 假定为int。注意: C++ 不支持默认int
1>d:\test\testvlc\testvlc\vlc\libvlc_events.h(208): error C2146: 语法错误: 缺少“;”(在标识符“new_length”的前面)
1>d:\test\testvlc\testvlc\vlc\libvlc_events.h(208): error C4430: 缺少类型说明符- 假定为int。注意: C++ 不支持默认int
1>d:\test\testvlc\testvlc\vlc\libvlc_events.h(208): error C4430: 缺少类型说明符- 假定为int。注意: C++ 不支持默认int
此问题是因为VS老的编译器引起的,在vlc.h头文件顶部(头文件宏定义之下)中增加如下定义:
// Typedefs for old MScompilers
typedefunsigned__int32 uint32_t;
typedef __int64 int64_t;
可以解决。
以上使用vlc库的开发环境配置完毕。
4、增加VLC适配器代码
这部分代码不是必须的,是为了上层应用简化封装出来的,可以使用,也可以使用,直接调用VLC提供的函数。若使用,之后再添加新的接口,需要在对应的文件里封装好就可以。
拷贝VLCWrapper.cppVLCWrapper.h VLCWrapperImpl.cpp VLCWrapperImpl.h 4个文件到工程源文件目录下,并添加CPP文件到工程里。
1)在对话框头文件中包含
#include "VLCWrapper.h"
2