VS2008下安装与配置DirectShow SDK 9.0 及 DirectShow AMCap改装的问题
一、安装DirectShow。
我装的是DirectShow SDK 9.0b。安装程序名为DXSDK_Jun10.exe。
下载地址:https://pan.baidu.com/s/1kURma3t
下载地址:https://pan.baidu.com/s/1slfmSMD
二、准备需要的静态链接库。
需要的静态链接库有strmiids.lib、strmbasd.lib、strmbase.lib、quartz.lib、winmm.lib。
其中strmiids.lib、quartz.lib在D:\ DXSDK\Lib文件夹下就有。strmbasd.lib要自己编译。
进入D:\ DXSDK\Samples\C++\DirectShow\BaseClasses文件夹下,双击baseclasses.sln。
按F7开始编译。
修改一些编译错误:
、 error C2146: 语法错误 : 缺少";"(在标识符"PVOID64"的前面)。
修改:在"typedef void * POINTER_64 PVOID64;"前面加上"#define POINTER_64 __ptr64"。
、 error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int。
修改:把"operator=(LONG);"改成"LONG operator=(LONG);"。
修改:把"static g_dwLastRefresh = 0;"改成"static DWORD g_dwLastRefresh = 0;"。
、error C2065: "Count": 未声明的标识符。
修改:在"for (UINT Count = 0;Count < Result;Count++) "语句前面加上"UINT Count = 0",再把"for (UINT Count = 0;Count < Result;Count++) "改为"for (Count = 0;Count < Result;Count++) "。
、 error C2065: "iDone": 未声明的标识符。
修改:在"for (long iDone = 0;iDone < nSamples || (m_nBatched != 0 && m_bSendAnyway);)"语句前面加上"long iDone = 0;",再把"for (long iDone = 0;iDone < nSamples || (m_nBatched != 0 && m_bSendAnyway);)"改为"for (iDone = 0;iDone < nSamples || (m_nBatched != 0 && m_bSendAnyway);)"。
个都勾起来。
单击"重新生成"。
这样strmbasd.lib就编译好了。
三、添加VS2008的头文件目录和静态库目录。
、头文件目录。
要添加的目录有:
D:\DXSDK\Include
D:\DXSDK\Samples\C++\DirectShow\BaseClasses
D:\DXSDK\Samples\C++\Common\Include。
、静态库目录。
要添加的目录有:
D:\DXSDK\Lib
D:\DXSDK\Samples\C++\DirectShow\BaseClasses\Debug
D:\DXSDK\Samples\C++\DirectShow\BaseClasses\Debug_Unicode
D:\DXSDK\Samples\C++\DirectShow\BaseClasses\Release
D:\DXSDK\Samples\C++\DirectShow\BaseClasses\Release_Unicode
DirectShow AMCap改装,无法解析的外部符号 "class CFactoryTemplate * g_Templates"
#ifdef FILTER_DLL
/* List of class IDs and creator functions for the class factory. This
provides the link between the OLE entry point in the DLL and an object
being created. The class factory will call the static CreateInstance
function when it is asked to create a CLSID_SystemClock object */
CFactoryTemplate g_Templates[1] = {
//{&CLSID_SystemClock, CSystemClock::CreateInstance}
{ L"SystemClock", &CLSID_SystemClock, CSystemClock::CreateInstance}
};
int g_cTemplates = sizeof(g_Templates) / sizeof(g_Templates[0]);
#endif
找到问题了,表面上看是STRMBASE.lib的问题,而STRMBASE.lib是编译自BaseClasses。上面的代码是关键,截取自BaseClasses项目的sysclock.cpp,FILTER_DLL没有预定义,所以出现问题,添加预定义就好了
VS2008下安装与配置DirectShow SDK 9.0 及 DirectShow AMCap改装的问题的更多相关文章
- Mac下安装及配置Appium环境
candiceli Mac下安装及配置Appium环境 我是小白,自己研究appium好几周了. 一开始按照同事这篇文章设置Mac下的环境,http://www.cnblogs.com/tangd ...
- Linux下安装和配置JDK与Tomcat(升级版)
在这个版本 Linux下安装和配置JDK与Tomcat(入门版) 的基础上优化升级 1.下载相关软件 apache-tomcat-6.0.37.tar.gz jdk-6u25-linux-i586-r ...
- [Linux]Linux下安装和配置solr/tomcat/IK分词器 详细实例二.
为了更好的排版, 所以将IK分词器的安装重启了一篇博文, 大家可以接上solr的安装一同查看.[Linux]Linux下安装和配置solr/tomcat/IK分词器 详细实例一: http://ww ...
- MAC下安装与配置MySQL
MAC下安装与配置MySQL MAC下安装与配置MySQL 一 下载MySQL 访问MySQL的官网http://www.mysql.com/downloads/ 然后在页面中会看到“MySQL ...
- 64位Win7下安装与配置PHP环境【Apache+PHP+MySQL】
[软件下载] 本安装实例所使用安装文件如图所示: 其中,64位版本的MySQL安装文件mysql-5.5.33-winx64.msi,可直接从官网下载,下载地址:http://dev.mysql.co ...
- 使用ProxychainsMac下安装及配置
下面几种解决方式 一.先在VPS用composer把Laravel给拖回来,本地你就别想用Composer正常下载Laravel回来了 二.使用全局代理,暂时木有折腾过在终端下怎么折腾,GUI可以使用 ...
- windows下安装和配置mongoDB
上次在mac下安装和配置了mongodb,这次在windows下也尝试安装和配置mongodb. 1.首先下载mongodb压缩包,下载后解压到D盘或E盘.如下: 2.配置环境变量:桌面—计算机右键— ...
- Mac下安装和配置mongoDB
mac下的mongodb下载安装比较简单,主要有两种方式,一种是下载压缩包解压,另一种是通过npm或者homebrew命令安装,这里就不赘述了, 复杂的在于mongodb运行环境的配置(若未配置运行环 ...
- PHP学习之-Mongodb在Windows下安装及配置
Mongodb在Windows下安装及配置 1.下载 下载地址:http://www.mongodb.org/ 建议下载zip版本. 2.安装 下载windows版本安装就和普通的软件一样,直接下一步 ...
随机推荐
- Mac下如何设置Eclipse默认浏览器为chrome
http://stackoverflow.com/questions/5322574/how-can-i-set-chrome-as-default-external-browser-in-eclip ...
- C#基于RSA加密算法实现软件注册实战演练
一.课程介绍 本次分享课程属于<C#高级编程实战技能开发宝典课程系列>中的一部分,阿笨后续会计划将实际项目中的一些比较实用的关于C#高级编程的技巧分享出来给大家进行学习,不断的收集.整理和 ...
- Cena评测系统在win10中测评cpp程序
1.装了cena-0.8.1-20110710-setup.exe 2.打补丁:cena-0.8.2-patch.zip 3.菜单->工具->选项->编程语言 修改G++ (mi ...
- flex学习, 尝试布局一个计算器
<!DOCTYPE html> <html> <head> <title>flex</title> </head> <st ...
- Android 利用二次贝塞尔曲线模仿购物车加入物品抛物线动画
Android 利用二次贝塞尔曲线模仿购物车加入物品抛物线动画 0.首先.先给出一张效果gif图. 1.贝塞尔曲线原理及相关公式參考:http://www.jianshu.com/p/c0d7ad79 ...
- Linux虚拟文件系统
从文件 I/O 看 Linux 的虚拟文件系统 1 引言 Linux 中允许众多不同的文件系统共存,如 ext2, ext3, vfat 等.通过使用同一套文件 I/O 系统 调用即可对 Linux ...
- oracle本地编译问题
oracle10.2: --将过程重新编译为本地编译方式,提示有编译错误,经查提示未设置plsql_native_library_dir 参数 SQL> alter procedure p_xx ...
- Android---Hellow World
在搭建好了Android的开发环境后,接下来要做的事情就是开始开发我们的第一个Android应用程序---Hello World. 1.我们新建一个android项目: Application Nam ...
- Spark 论文篇-大型集群上的快速和通用数据处理架构(中英双语)
论文内容: 待整理 参考文献: An Architecture for Fast and General Data Processing on Large Clusters. Matei Zahari ...
- 5 Protocols For Event-Driven API Architectures
The internet is a system of communication, and as such, the relationship between client and server, ...