我在链路中调用
hr = m_pFileSource->QueryInterface(IID_IMP4SouceFilter, (void**)&m_pISource);
查询SourceFilter上面的接口,编译成功,但是在链接时出现
        error LNK2001: 无法解析的外部符号 _IID_IMP4SouceFilter
        fatal error LNK1120: 1 个无法解析的外部命令
我的SourceFilter上的方法就是按照SDK下面Ball的例子写的
代码如下:#ifndef __FILTER__QQ__
#define __FILTER__QQ__//  这里所用到的所有时间戳都以毫秒单位#ifdef __cplusplus
extern "C" {
#endif DEFINE_GUID(IID_IMP4SouceFilter, 
0x33c5052b, 0x48d0, 0x434e, 0xa0, 0x26, 0xe6, 0xa8, 0x16, 0xb1, 0xe6, 0x2a); DECLARE_INTERFACE_(IMP4SouceFilter, IUnknown)
{
STDMETHOD(GetVideoDuration)(THIS_ LONGLONG *pVideoDuration)PURE;
STDMETHOD(GetAudioDuration)(THIS_ LONGLONG *pAudioDuration)PURE;
STDMETHOD(GetCurVideoDuration)(THIS_ LONGLONG *pVideoCurDuration)PURE;
STDMETHOD(GetCurAudioDuration)(THIS_ LONGLONG *pAudioCurDuration)PURE;
STDMETHOD(SetNewPos)(THIS_ LONGLONG lNewPos)PURE;

};#ifdef __cplusplus
}
#endif#endif // __IIAVS__在Filter上面继承这个接口,然后实现上述方法,并且已经将接口暴露出来....
不知道为什么还是报上述错误呢?  请大侠指点

解决方案 »

  1.   

    引用了头文件
    没有加入对应的.c文件,里面有IID_IMP4SouceFilter定义
      

  2.   

    DEFINE_GUID(,
    0x33c5052b, 0x48d0, 0x434e, 0xa0, 0x26, 0xe6, 0xa8, 0x16, 0xb1, 0xe6, 0x2a); 
    就是IID_IMP4SouceFilter的定义
      

  3.   

    好象是DEFINE_GUID的问题,改成static GUID IID_IMP4SouceFilter = 
    {0x33c5052b, 0x48d0, 0x434e, 0xa0, 0x26, 0xe6, 0xa8, 0x16, 0xb1, 0xe6, 0x2a}; 试试