Microsoft SDK 中Sample案例之Amcap項目 的运行方法(转)

http://blog.csdn.net/erick08/article/details/7194575

Microsoft  SDK 中Sample之Amcap 的运行方法

     这篇文章的由衷是我想很多编程爱好者都可能会去尝试运行SDK的Sample,但微软提供的代码并不能直接编译,我开始发现运行报错时,还拙劣地以为是代码有误,竟然改动了少许代码,结果显然还是fail了。

网上查了很多关于编译失败的资料,有讲“无法解析的外部符号”,也有讲到具体代码中的类及头文件、库文件等等,下面讲下我最后成功的步骤。

注:如果中間遇到問題,請多多嘗試,最好先备份一下,请在原目录及原文件夹运行,以保持文件路径不变!

一、         我用的IDE是vs2008,系统是64位的,所以下载对应64位的Microsoft  SDK并安装,我的是7.1版本。

二、         设置好IDE配置,工具——》选项——》项目和解决方案——》VC++目录

其中

把Micorsoft   SDKs\Windows\v7.1\Include

Micorsoft   SDKs\Windows\v7.1\Samples\multimedia\directshow\common

添加进“包含文件”。

Microsoft SDK 中Sample案例之Amcap項目 的运行方法(转)

把Micorsoft SDKs\Windows\v7.1\Lib\x64

Micorsoft SDKs\Windows\v7.1\Samples\multimedia\directshow\baseclasses\Debug

Micorsoft SDKs\Windows\v7.1\Samples\multimedia\directshow\baseclasses\Debug_MBCS

Micorsoft SDKs\Windows\v7.1\Samples\multimedia\directshow\baseclasses\Release

Micorsoft SDKs\Windows\v7.1\Samples\multimedia\directshow\baseclasses\Release_MBCS

添加进“库文件”。

注:baseclasses\Debug等文件夹微软并不提供,需要我们自己打开baseclasses项目的解决方案进行编译(运行)才生成,我的做法是对Debug\Debug_MBCS\Release\Release__MBCS四种模式都进行编译(运行),之后再添加进库文件。

Microsoft SDK 中Sample案例之Amcap項目 的运行方法(转)

三、         设置项目属性,项目——》AmCap属性——》配置属性——》链接器——》输入

在“附加依赖项”中添加 Strmbase.lib/Strmbasd.lib winmm.lib Msacm32.lib

注:Strmbase.lib 是 bassclasses项目在Release 模式下生成的,Strmbasd.lib是Debug模式下生成的。

Microsoft SDK 中Sample案例之Amcap項目 的运行方法(转)

四、         现在可以正常运行AmCap了,得到的Exe文件只能在装有vs2008等工具下运行,为了可以脱离平台限制,设置如下:

项目——》AmCap属性——》配置属性——》C/C++——》代码生成

把运行时库设置为“多线程(/MT)”或“多线程调试(/MTd)”,此时

项目——》AmCap属性——》配置属性——》链接器——》输入

忽略特定库需对应添加为“libcmt.lib”或“libcmtd.lib”,

运行得到的可执行文件就与平台无关了。

Directshow\capture文件下的其他项目类似也可以正常运行,希望大家正常运行这些项目后有投入更大的兴趣去学习代码,增強信心。

上一篇:Android 低版本sdk中没有getSupportedPreviewSizes和getSupportedPictureSizes函数怎么办?


下一篇:利用WPF建立自己的3d gis软件(非axhost方式)(十一)SDK中的动画系统