我有一个Mpeg2 TS应该进行分析。我正在使用Windows套件版本8(或8.1)中引入的头文件 Dvbsiparser.h。
我知道(但不确定)我应该构建一个过滤器图,然后添加两个重要的过滤器:1. Mpeg2节和表2. Mpeg2运输信息
之后,我使用IDvbSiParser obj分析流。
当我想实例化IDvbSiParser时:



我收到链接错误:无法解析的外部IID_IDvbSiParser。

我使用Visual stdio 2013,.Net 4.5和msvc++。
我还包括了stream.h并链接了winmm.lib,strmbased.lib,msvcrtd.lib和strmiids.lib,并设置了Windows工具箱的真实lib路径。
除IDvbSiParser之外,将创建所有其他对象。

我应该使用另一个库还是包含另一个头文件?
如何找到IID_IDvbSiParser的正确库?
谢谢。

最佳答案

毕竟,我再次阅读MSDN about DvbSiParser2并面对以下重要说明:



因此,我们可以使用IDvbSiParser2代替IDvbSiParser,因为我们知道IDvbSiParser2 MSDN Doc中提到的IDvbSiParser具有正确的CLSID。
下一步包括定义新的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。

09-07 03:19