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

添加进“包含文件”。

把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四种模式都进行编译(运行),之后再添加进库文件。

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

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

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

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

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

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

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

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

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

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

Microsoft SDK 中Sample案例之Amcap項目 的运行方法(转)的更多相关文章

  1. 如何在版本控制工具中管理Sencha Architect的項目

    根據數次痛苦的經歷結合stack overflow上的解答,發現原來還是可以使用svn.git之類的版本控制工具管理Sencha Architect生成的項目的. 具體的要點如下,假定項目記作{PRO ...

  2. 编写2个接口:InterfaceA和InterfaceB;在接口InterfaceA中有个方法void printCapitalLetter();在接口InterfaceB中有个方法void printLowercaseLetter();然 后写一个类Print实现接口InterfaceA和InterfaceB,最后再在主类E 的main方法中创建Print的对象并赋值,运行方法

    package lianxi; public interface InterfaceA { void printCapitalLetter(); } package lianxi; public in ...

  3. 【TBarCode SDK教程】TBarCode SDK 如何在 Microsoft Office 中工作?

    使用条形码软件组件 TBarCode SDK,你可以在 Microsoft Office 中快速且简便地创建各种条形码.都不需要任何编程的技巧,只需要点击几次鼠标就可以将TBarCode SDK集成到 ...

  4. Microsoft.Net中数字签名技术

    概 述:本文以Microsoft.Net中创建签名的CAB文件为例,说明如何创建签名文件,从而使你的代码能够安全的在INTERNET上公布.希望能起到抛转引玉的作用. keyword:数字签名,Act ...

  5. 利用WPF建立自己的3d gis软件(非axhost方式)(十)SDK中一些自带的展示面板应用

    原文:利用WPF建立自己的3d gis软件(非axhost方式)(十)SDK中一些自带的展示面板应用 先下载SDK:https://pan.baidu.com/s/1M9kBS6ouUwLfrt0zV ...

  6. 通过一个生活中的案例场景,揭开并发包底层AQS的神秘面纱

    本文导读 生活中案例场景介绍 联想到 AQS 到底是什么 AQS 的设计初衷 揭秘 AQS 底层实现 最后的总结 当你在学习某一个技能的时候,是否曾有过这样的感觉,就是同一个技能点学完了之后,过了一段 ...

  7. [nRF51822] 5、 霸屏了——详解nRF51 SDK中的GPIOTE(从GPIO电平变化到产生中断事件的流程详解)

    :由于在大多数情况下GPIO的状态变化都会触发应用程序执行一些动作.为了方便nRF51官方把该流程封装成了GPIOTE,全称:The GPIO Tasks and Events (GPIOTE) . ...

  8. [nRF51822] 3、 新年也来个总结——图解nRF51 SDK中的Button handling library和FIFO library

    :本篇是我翻译并加入自己理解的nRF51 SDK中按钮相关操作的库和先进先出队列库.虽然是nRF51的SDK,但是通过此文你将更多地了解到在BSP(板级支持)上层嵌入式程序或OS的构建方法. 1.按钮 ...

  9. 如何解决Android SDK中离线文档打开慢的问题

    原文:http://blog.csdn.net/hansel/article/details/39268511 Android SDK中的离线文档虽然都是本地文件,但是有很多Javascript, C ...

随机推荐

  1. Android 解决图片大量下载:软引用必须懂4点

    1.对象的强.软.弱和虚引用为了能更加灵活控制对象的生命周期,需要知道对象引用的4中级别,由高到低依次为 :强引用.软引用.弱引用和虚引用 备注: 这四种的区别: ⑴强引用(StrongReferen ...

  2. microsoft azure 速度测试网址

    http://www.azurespeed.com/ 选择你附近的区域.可以使用 azurespeed.com 查找延迟最低的数据中心.

  3. CentOs环境下PHP支持PDO_MYSQL

    一.下载相应tgz包: http://pecl.php.net/get/PDO_MYSQL-1.0.2.tgz二.安装开始 解压# tar zxvf PDO_MYSQL-1.0.2.tgz # cd ...

  4. SQL中一种类似GUID值的函数实现

        开发中会需要用到多列值组合成一个ID值的情况.比如做数据清洗的时候,一张表A有五列,分别是医院.科室.医生.职称.电话.面有许多重复的数据需要和另一个表B(和A列相同)做对比.清洗需要做两件事 ...

  5. NPOI导出Excel文件,对单元格的一些设置

    HSSFWorkbook book = new HSSFWorkbook(); MemoryStream ms = new MemoryStream(); ISheet sheet = book.Cr ...

  6. OpenGL学习笔记之了解OpenGL

    OpenGL(全写Open GraphicsLibrary)是个定义了一个跨编程语言.跨平台的编程接口规格的专业的图形程序接口.它用于三维图像(二维的亦可),是一个功能强大,调用方便的底层图形库. 说 ...

  7. [shell基础]——算术运算

    shell只支持整数运算.一般可用let.expr.declare.$[]实现. 更精准的运算建议使用Linux下的bc工具——一款高精度计算语言. 1. let是shell内建的整数运算命令 ## ...

  8. postmortem report of period M1

    一.设想和目标 1.我们的软件主要要解决学长设计的学霸系统中视频及文档的浏览功能问题. 2.时间相对充裕.不过对于我们这些零基础的人来说还是比较困难. 3.我们团队中不同意见通常会进行进一步讨论,说出 ...

  9. 寻找“水王”--c++

    一.题目与设计思路 三人行设计了一个灌水论坛.信息学院的学生都喜欢在上面交流灌水,传说在论坛上有一个“水王”,他不但喜欢发帖,还会回复其他ID发的每个帖子.坊间风闻该“水王”发帖数目超过了帖子数目的一 ...

  10. Android编程小实验

    1.一个layout中存在相同id的控件会出现什么情况?   结论:编译和运行的时候都不会报错,不过使用findViewById()只会获取第一个该id的控件 来自为知笔记(Wiz)