3

Mpeg2 TS を分析する必要があります。Dvbsiparser.h という名前の Windows Kit バージョン 8 (または 8.1) で導入されたヘッダー ファイルを使用しています。
フィルター グラフを作成してから、次の 2 つの重要なフィルターを追加する必要があることはわかっています (確信はありません)
。IDvbSiParser をインスタンス化する場合:

CoCreateInstance(__uuidof(IDvbSiParser), ..., ..., IID_IDvbSiParser, ...)

Link error: Unresolved external IID_IDvbSiParser が表示されます。

Visual stdio 2013、.Net 4.5、および msvc++ を使用しています。また、stream.h を含め、winmm.lib、strmbased.lib、msvcrtd.lib、strmiids.lib をリンクし、Windows キットへの真の lib パスを設定しました。IDvbSiParser を除く他のすべてのオブジェクトが作成されます。

別の lib を使用するか、別のヘッダー ファイルを含める必要がありますか? IID_IDvbSiParser の適切なライブラリを見つけるにはどうすればよいですか? ありがとう。

4

1 に答える 1

2

結局、DvbSiParser2 に関する MSDN をもう一度読んだところ、次の重要な注意事項に直面しました。

IDvbSiParser2 インターフェイスは、IDvbSiParser から継承します。IDvbSiParser2 には、次の種類のメンバーもあります。

したがって、IDvbSiParser の代わりに IDvbSiParser2 を使用できます。これは、IDvbSiParser の適切で真の CLSID がIDvbSiParser2 MSDN Docで言及されていることがわかっているためです。次のステップには、次のような新しい GUID 変数の定義が含まれます。

GUID CLSID_IDvbSiParser2 = {0xF6B96EDA, 0x1A94, 0x4476, 0xA8, 0x5F, 0X4D, 0x3D, 0xC7, 0xB3, 0x9C, 0x3F};
IDvbSiParser2 *ppdvbsp;
HRESULT hr = CoCreateInstance(CLSID_IDvbSiParser2, NULL, CLSCTX_INPROC_SERVER, __uuidof(IDvbSiParser2), void **( pDvbsiparser ));
if (SUCCEEDED(hr)) { lab lab lab};

私がしたように、あなたは S_OK を得ると思います。

于 2016-01-12T15:51:47.457 に答える