2

Visual Studio 2008 を使用して、Windows Mobile 6.1 を搭載したデバイス用の SmartDevice Win32 DLL を開発しています。DirectShow を使用する必要があり、基本的な例の再現を開始しました。

.h:_

#pragma once

// Additional Include Directories:
// "C:\Program Files (x86)\Windows Mobile 6 SDK\Smartphone\Include\Armv4i"
#include <dshow.h>

// Included strmiids.lib for CLSID_FilterGraph and IID_IGraphBuilder (.cpp)
#pragma comment(lib, "strmiids.lib")



extern "C" {

    __declspec(dllexport) bool InitCOM();

}

そして.cpp

#include "stdafx.h"
#include "DLLDevice.h"


BOOL APIENTRY DllMain( HANDLE hModule, 
                       DWORD  ul_reason_for_call, 
                       LPVOID lpReserved
                     )
{
    return TRUE;
}



__declspec(dllexport) bool InitCOM()
{
    if(FAILED(CoInitialize(NULL)))
        return false;

    IGraphBuilder* pGraphBuilder = NULL;
    HRESULT hr = CoCreateInstance(CLSID_FilterGraph, NULL, CLSCTX_INPROC_SERVER, 
        IID_IGraphBuilder, (void**) &pGraphBuilder);

    if(FAILED(hr))
        return false;

    IMediaControl *pMediaControl = NULL;
    hr = pGraphBuilder->QueryInterface(IID_MediaControl, (void**) &pMediaControl);


    pGraphBuilder->Release();

    return true;
}

今、私はリンカエラーを持っています:

error C2065: 'IID_MediaControl' : undeclared identifier

なんで?どうすればこの問題を解決できますか?
DirectShow でプロジェクトを作成できないのはなぜですか?

4

1 に答える 1

2

そうではIID_IMediaControlないからIID_MediaControlです。

于 2012-10-14T16:53:29.950 に答える