编译BaseClasses,该工程是对dshow的一个简单封装, 据说用它开发比较方便。

1. 巧妇首先要找米,否则无法做饭。由于DirectX9在2006以后就没有DirectShow模块了。因此第一步要下载安装DirectX 9.0 SDK和 DirectX 9.0 SDK Update (February 2005) Extras。  

BaseClasses就在目录D:\Download\dxsdk2005\Extras\DirectShow\Samples\C++\DirectShow\BaseClasses下。

下载路径如下:

http://119.84.110.127/dxsdk_feb2005_extras.exe?fid=KRNc615mzAWdRTdsGRJ1Ep5A6s8IFzoCAAAAAOV-TGMkJ2MG*- 4USJfYXUi0E5I&mid=666&threshold=150&tid=CFF69D745B766E6497694F3FF6274768&srcid=119&verno=1

http://download.microsoft.com/download/d/9/1/d91c44b9-fbac-4e8e-bee1-4a75777923ec/dxsdk_feb2005_extras.exe

2. 用vs2010打开工程,并转化。

3. 编译,会报错,如下。

c:/program files/microsoft sdks/windows/v7.0a/include/objidl.h(11280): error C2061: 语法错误: 标识符“__RPC__out_xcount_part”
c:/program files/microsoft sdks/windows/v7.0a/include/objidl.h(11281): error C2059: 语法错误:“)”
1>c:\program files\microsoft sdks\windows\v7.0a\include\objidl.h(11303): error C2059: 语法错误:“<L_TYPE_raw>”
c:\program files\microsoft sdks\windows\v7.0a\include\objidl.h(11303): error C2238: 意外的标记位于“;”之前

由于在2010下DShow相关库文件在Microsoft sdks中,因此要修改的文件也在该目录中找。

在C:\Program Files\Microsoft SDKs\Windows\v7.0A\include\objidl.h文件下的
#ifndef __AsyncIPipeByte_INTERFACE_DEFINED__
#define __AsyncIPipeByte_INTERFACE_DEFINED__
下面直接加上
#define __RPC__out_xcount_part(size, length)
#define __RPC__in_xcount(size)
#define __RPC__in_xcount_full(size)
#define __RPC__in_range(min, max)
#define __RPC__inout_xcount(size)

才能起作用

网上还有种说法是

在DX目录下的Rpcsal.h中添加如下预编译指令:

#define __RPC__out_xcount_part(size, length)
#define __RPC__in_xcount(size)
#define __RPC__in_xcount_full(size)
#define __RPC__in_range(min, max)
#define __RPC__inout_xcount(size)

我试过不起作用,原因是vs2010下使用的库文件在vs2010自带的Microsoft sdks中,而不在dx的安装路径中。另外,不需要vs2010中在系统目录中添加相关的include和lib目录,一切已经自带了。可能在vc6.0等版本中可以用后面的方法吧。


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值