DirectShow VC6.0 开发环境的搭建

vc6.0配置 DirectShow SDK 用 DirectShow SDK 作开发的环境变量配置, 一 基本需求    1 include “DShow.h”    2 link StrmBase.lib   二 环境设置: VC Menu: project->setting: 1 c/c++ ->codegeneration->__stdcall c/c++ ->codegenerat 阅读详情

今天要用DirectShow做一个音频采集程序,结果遇到的第一个问题便是开发环境的搭建,需要几步准备。

1)下载支持DirectShow的SDK

2)将SDK中的include和lib目录配置到VC6.0下(一般SDK在安装过程中会自己配置)

3)编译SDK中samples中提供的项目,得到Strmbasd.lib winmm.lib库文件,这个要在新建的DirectShow工程中引用

 

第一步,我为了能够开发DirectShow程序,曾想过用VC6.0或者VS2005,只要这两个有一个配置成功了,我便用哪个,因为我对开发环境并不关注。

我先后下载并安装了微软提供的两个SDK,一个是Windows.Server.2003.Platform.SDK.Feb.2003.Edition-QUANTUM,另一个是DXSDK_Aug08。这两个到后来我没有配置成功,所以这里略过,我没配置成功不代表别人就配置不成。

我最后下载了成功配置的SDK,这就是dx9sdk,在百度里搜索“DirectX9.0b SDK Summer 2003”应该可以搜到并下载。安装之后,果然有这个目录:<SDK root>/SAMPLES/C++/DirectShow/BASECLASSES

下面,进入第二步。

第二步,打开VC6.0

Tools->Options->Directories
Include - 添加<SDK root>/Include
Lib       - 添加<SDK root>/Lib
            - 添加<SDK root>/SAMPLES/C++/DirectShow/BASECLASSES/DEBUG  //这个目录在第3步之后会出现的

第三步,对于<SDK root>/SAMPLES/C++/DirectShow/BASECLASSES的编译,我要转引网上一篇我十分感激的文章:

转引开始:

 

我也是个初学者,要是以下的文章有什么错误,请给我留言,谢谢!

[1] 请确保您的机子上已经安装了VS 2005和DirectX 9.0b SDK。DX9.0 SDK的下载地址就不写了,自己在网上找吧!(我的DX9.0安装在D盘根目录下)

[2] 首先编译SamplesC++DirectShowBaseClasses目录下的baseclasses.sln以得到两个库文件(strbase.lib和strmbase.lib)。以下介绍的主要是如何修改编译中的错误,这也是众多文章中没有叙述的部分。自己写的,有些啰嗦,请原谅哦!

    进入DirectShow的安装目录,找到SamplesC++DirectShowBaseClasses,双击baseclasses.sln打开该解决方案。首先看到的会是Visual Studio的转换向导,不用管它,直接Next到Finish。

    点击F5,调试运行,你会见到下面的错误(至少我编译的时候就是这样的结果):

    1>------ Build started: Project: BaseClasses, Configuration: Debug Unicode Win32 ------
    1>Compiling...
    1>dllentry.cpp
    1>D:Program FilesMicrosoft Visual Studio 8VCPlatformSDKincludewinnt.h(222) : error C2146: syntax error : missing ';' before identifier 'PVOID64'
    1>D:Program FilesMicrosoft Visual Studio 8VCPlatformSDKincludewinnt.h(222) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
    1>D:Program FilesMicrosoft Visual Studio 8VCPlatformSDKincludewinnt.h(5940) : error C2146: syntax error : missing ';' before identifier 'Buffer'
    1>D:Program FilesMicrosoft Visual Studio 8VCPlatformSDKincludewinnt.h(5940) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
    1>D:Program FilesMicrosoft Visual Studio 8VCPlatformSDKincludewinnt.h(5940) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
    1>d:DXSDKSamplesC++DirectShowBaseClassesctlutil.h(278) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
    1>d:DXSDKincludeuuids.h : warning C4819: The file contains a character that cannot be represented in the current code page (936). Save the file in Unicode format to prevent data loss
    1>Build log was saved at "file://d:DXSDKSamplesC++DirectShowBaseClassesDebug_UnicodeBuildLog.htm"
    1>BaseClasses - 6 error(s), 1 warning(s)
    ========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========

    没办法,改错。(网上老外的文章中说过,不过也不明白什么意思!)

    双击1>D:Program FilesMicrosoft Visual Studio 8VCPlatformSDKincludewinnt.h(222) : error C2146: syntax error : missing ';' before identifier 'PVOID64'   跳转到出错的位置。

    你会见到错误语句:typedef void * POINTER_64 PVOID64;

    这样的定义,VS2005中是不支持的。将其修改为两条语句:

    #define POINTER_64 __ptr64

    typedef void *PVOID;
    typedef void *POINTER_64 PVOID64;

    然后调试运行,会发现还有1条错误:

      1>------ Build started: Project: BaseClasses, Configuration: Debug Unicode Win32 ------
      1>Compiling...
      1>dllentry.cpp
      1>d:DXSDKSamplesC++DirectShowBaseClassesctlutil.h(278) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
      1>d:DXSDKincludeuuids.h : warning C4819: The file contains a character that cannot be represented in the current code page (936). Save the file in Unicode format to prevent data loss
      1>Build log was saved at "file://d:DXSDKSamplesC++DirectShowBaseClassesDebug_UnicodeBuildLog.htm"
      1>BaseClasses - 1 error(s), 1 warning(s)
      ========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========

    只有继续改啦!双击1>d:DXSDKSamplesC++DirectShowBaseClassesctlutil.h(278) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int 跳转到出错的位置。

    你会见到错误语句:operator=(LONG);

    只是没有返回值嘛!给它加一个就行了,将其改为:LONG operator=(LONG);

    再次调试运行,哇塞!更多错误:

      1>------ Build started: Project: BaseClasses, Configuration: Debug Unicode Win32 ------
      1>Compiling...
      1>wxdebug.cpp
      1>.wxdebug.cpp(534) : warning C4996: '_vsnwprintf' was declared deprecated
      1>        D:Program FilesMicrosoft Visual Studio 8VCincludestdio.h(450) : see declaration of '_vsnwprintf'
      1>        Message: 'This function or variable may be unsafe. Consider using _vsnwprintf_s instead. To disable depr

VC6.0+DirectShow+人脸识别+TCP视频传输项目实战 本文还有配套的精品资源,点击获取 简介:本项目融合了VC6.0、DirectShow、人脸识别和TCP传输技术,旨在实现跨设备的视频流共享和人脸识别功能。通过使用DirectShow捕获视频,结合人脸识别算法,视频帧通过TCP套接字传输到远程设备。接收端使用DirectShow接收和解码视频流,并可进行进一步处理。该项目涉及网络编程、图像处理和机器学习等多个领域,对于理解和... 阅读详情

相关推荐

VB6 - DirectShow 摄像头控制

VB6 - DirectShow WebCam Minimal Code-VBForums

用VB6实现的基于directshow.net的摄像头拍摄实例

这个东西我也找得蛮辛苦的.所以,给我一些积分奖励我一下吧.网络上是很难找到用vb实现directshownet的,当然你可以去找一些收费的控件,不过比较便宜的也要收你几百块钱人民币吧.而且,还学不到什么东西.

VbDShow

vb6.0 directshow应用程序

VC++6.0 控制摄像头源代码,采用 DirectxShow 效率很高

VC++6.0 控制摄像头源代码,采用 DirectxShow 效率很高,和大家共享,希望对大家有帮助! (VC++6.0 to control the camera source code, using DirectxShow efficient, and share, we want to help!)

使用VB编写摄像头程序

使用VB编写的摄像头,能够任意一帧图像,从而得到图片。

vb用directshow编写的视频源码

vb用directshow编写的视频源码

新疆地形数据下载:30米、12.5米、5米DEM地形数据

新疆是我国陆地面积最大的省级行政区,总面积达166万平方公里。新疆的地形也十分的复杂,新疆的地形呈山脉与盆地相间排列,盆地被高山环抱,,俗称“三山夹两盆”。三山指阿尔泰山、昆仑山、天山,两盆是指塔里木盆地和准噶尔盆地。 对精度要求不高的话,可以直接使用图新地球下载 新疆30米地形数据 大小:9.26GB 来自ASTER v3的新疆30米地形数据 30米地形数据下载 新疆12.5米地形数据 12.5米DEM数据由于精度比较高,一般不会用到全省的数据,通常用的是一个地区的,因此,可以单独分

LocaSpace的博客 3495

光电振荡器(OEO):从原理到应用,解锁高频微波信号新纪元

本文深入解析了光电振荡器(OEO)的核心原理与前沿应用。OEO通过巧妙的光-电-光转换机制,利用光学谐振腔产生高频、高纯度、低相位噪声的微波信号,有效突破了传统电子电路的频率瓶颈。文章详细拆解了其工作流程,并探讨了在雷达系统、高速光通信及精密测量等领域的硬核应用价值。

weixin_29231027的博客 365

从零到一:桌面宠物的硬件架构设计与工程实践

本文详细介绍了基于STM32F103C8T6主控平台的桌面宠物机器人硬件架构设计与工程实践。内容涵盖电源管理、舵机控制、PCB布局及系统调试等核心环节,为硬件爱好者提供从零到一的完整开发指南,助力打造稳定可靠的智能桌面伴侣。

alice7model的博客 1112

射频测试基础知识总结

表示可以辐射到空间的电磁频率,频率范围从300KHz~110GHz之间,射频简称RF,是高频交流变化电磁波的简称,其每秒变化小于1000次被称为低频电流,超过10000次的称为高频电流,而射频就是这种高频电流。为了确保天线接收的信号能够在接收机的最后一级被正确的恢复,一个好的低噪音放大器需要在放大信号的同时产生尽可能低的噪音以及失真。两种,带内试验的范围也有一定的差别,比如,带内试验主要是检测信号的质量,如功率、频谱宽度、调制质量,而带外测试的是信号的杂散、谐波,主要是看对频带之外的干扰有多大。

cny70的博客 9628

ADS电路仿真方法综述:原理与应用

在射频与微波电路设计中,精确的仿真技术是验证性能的关键。ADS(Advanced Design System)作为行业标准工具,集成了多种仿真方法,适用于不同场景。本文将系统解析瞬态分析、谐波平衡(HB)、交流分析(AC)、直流分析(DC)、S参数、大信号SP(LSSP)及包络分析的原理、实现机制与应用场景。

u014344410的博客 481

实现基于 Python 和 xterm.js 的 Web 交互终端demo

前端 (HTML):使用 xterm.js 作为前端终端模拟器库。创建了一个 WebSocket 连接到 ws://localhost:8765,这与后端服务器的地址和端口匹配。监听 WebSocket 消息,并将数据写入终端。同时监听用户输入并发送到服务器。后端 (Python):使用 websockets 库来创建 WebSocket 服务器,监听端口 8765。使用 paramiko 库来创建 SSH 客户端并连接到指定的远程服务器。

u010674101的专栏 876

[Dify] 多步对话流程的实现技巧:构建连贯自然的多轮交互系统

摘要:本文探讨了AI系统中实现多轮对话的核心技术与应用方法。文章首先分析了多步对话的典型场景(如机票预订、财务报告生成)及其价值,提出了Dify平台实现该功能的三大机制:变量系统、条件控制和状态管理。随后详细介绍了顺序型、条件型和确认型三种基本对话模式,并通过"会议预约助手"案例展示了实际应用流程。文章还提供了提示词设计、变量引用等实用建议,并强调多轮对话成功的关键在于清晰的结构设计而非单纯依赖模型能力,最终实现自然流畅的人机交互体验。

技术小甜甜:传播可落地技术,帮助个人和企业降低解决真实场景问题的成本 1343

Python与网络爬虫案例:电影评论抓取

接下来,我们就可以通过分析该页面中的HTML代码,来确定需要抓取的内容。在这段代码中,我们首先对每个评论div元素进行for循环,然后通过find方法获取class为'title'、'text'、'rating-other-user-rating'的元素,并将结果分别赋值给title、content和rating变量。在这段代码中,我们首先定义了目标网站的URL和headers信息,然后通过requests.get方法向目标网站发送了一个GET请求,并将返回的响应赋值给了response变量。

吃不胖. 1263

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

上一篇: sql server 改变数字小数点位数
下一篇: [转]利用.Net绘图技术制作水晶按钮控件
out_of_memory
博客等级 码龄20年 8粉丝 6原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值