首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

下面是msdn上有关DirectShow的一段代码,调不通解决思路

2012-03-03 
下面是msdn上有关DirectShow的一段代码,调不通下面是msdn上有关DirectShow的一段代码,调不通?不知道还要加

下面是msdn上有关DirectShow的一段代码,调不通
下面是msdn上有关DirectShow的一段代码,调不通?
不知道还要加些什么头文件?
int   _tmain(int   argc,   _TCHAR*   argv[])
{
IGraphBuilder   *pGraph   =   NULL;
IMediaControl   *pControl   =   NULL;
IMediaEvent       *pEvent   =   NULL;

        //   Initialize   the   COM   library.
        HRESULT   hr   =   CoInitialize(NULL);
        if   (FAILED(hr))
        {
                printf( "ERROR   -   Could   not   initialize   COM   library ");
                return   0;
        }

        //   Create   the   filter   graph   manager   and   query   for   interfaces.
        hr   =   CoCreateInstance(CLSID_FilterGraph,   NULL,   CLSCTX_INPROC_SERVER,  
                                                IID_IGraphBuilder,   (void   **)&pGraph);
        if   (FAILED(hr))
        {
                printf( "ERROR   -   Could   not   create   the   Filter   Graph   Manager. ");
                return   0;
        }

        hr   =   pGraph-> QueryInterface(IID_IMediaControl,   (void   **)&pControl);
        hr   =   pGraph-> QueryInterface(IID_IMediaEvent,   (void   **)&pEvent);

        //   Build   the   graph.   IMPORTANT:   Change   this   string   to   a   file   on   your   system.
        hr   =   pGraph-> RenderFile(L "C:\\Example.avi ",   NULL);
        if   (SUCCEEDED(hr))
        {
                //   Run   the   graph.
                hr   =   pControl-> Run();
                if   (SUCCEEDED(hr))
                {
                        //   Wait   for   completion.
                        long   evCode;
                        pEvent-> WaitForCompletion(INFINITE,   &evCode);

                        //   Note:   Do   not   use   INFINITE   in   a   real   application,   because   it
                        //   can   block   indefinitely.
                }
        }
        pControl-> Release();


        pEvent-> Release();
        pGraph-> Release();
        CoUninitialize();
return   0;
}

[解决办法]
装了sdk没有?
[解决办法]
#include <dshow.h >
#pragma comment(lib, "Strmiids.lib ")
[解决办法]
1.装DX SDK没?
没装那就去下吧.
2.让编译器包含软件开发包的目录没?
首先点击Tool菜单,选择Options,然后点击Directories,在Show Directories for 组合框下拉菜单中选择Include files,增加一个新的目录。将你的DirectX的路径填入。(例如:C:\DXSDK\include)然后将它移到列表的第一位,使编译时第一个寻找它(防止寻找老版本)。然后选择Show Directories for组合框下拉菜单中的Library files,方法同前,只是把include改成lib。
3.添加库文件名到你的工程没?
Project -> Settings -> Link ,在Object/library modules中加入你要用到的.lib文件

如果还不行的话那我就没折了...

热点排行