科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道基础软件Visual C++.NET DirectShow编程

Visual C++.NET DirectShow编程

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

运用DirectShow我们可以很方便地从支持WDM驱动模型的采集卡上捕获数据并进行相应的后期处理乃至存储到文件中

作者:sunjin007 来源:论坛 2007年11月16日

关键字:

  • 评论
  • 分享微博
  • 分享邮件
开始工程

  打开Visual Studio .NET 2003,文件→新建→项目

  1.生成基于MFC的应用程序,名称PlayWnd。



  2.选择应用程序类型基于对话框,点击完成。

  3.设置工程属性

  项目→PlayWnd属性→配置属性→链接器→输入→附加依赖项,添加库文件Strmiids.lib 和Quartz.lib。

  由于Dshow.h头文件是在任何DirectShow工程中都要用到的,因此我们stdafx.h加入如下行:

#include <Dshow.h>

  4.设计对话框,如下:



IDC_STATIC 控件类型 Static Text
Caption 媒体文件名:
IDC_MEDIAFILE_EDIT 控件类型 Edit Control
IDC_BROWSE_BUTTON 控件类型 Button
Caption 浏览
IDC_VW_FRAME 控件类型 Picture Control
Type Rectangle
IDC_PLAY_BUTTON 控件类型 Button
Caption 播放
IDC_PAUSE_BUTTON 控件类型 Button
Caption 暂停
IDCANCEL 控件类型 Button
Caption 关闭

  5.COM的初始化和卸载,

  修改PlayWnd.cpp添加初始化代码(加入的代码用粗黑体表示,下同)

BOOL CPlayWndApp::InitInstance()
{
 // 如果一个运行在 Windows XP 上的应用程序清单指定要
 // 使用 ComCtl32.dll 版本 6 或更高版本来启用可视化方式,
 //则需要 InitCommonControls()。否则,将无法创建窗口。


 InitCommonControls();

 //初始化COM接口

 HRESULT hr = CoInitialize(NULL);

 if (FAILED(hr))
 {
  TRACE("ERROR - Could not initialize COM library.\n");
  return FALSE;
 }


 CWinApp::InitInstance();

 AfxEnableControlContainer();

  修改PlayWnd.cpp添加卸载COM代码,注意需要对虚函数ExitInstance进行重载

int CPlayFileApp::ExitInstance()
{
 // TODO: 在此添加专用代码和/或调用基类
 //关闭COM


 CoUninitialize();
 return CWinApp::ExitInstance();
}
    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章