不管哪个用到了SampleGrabber的例子,都会
error LNK2001: unresolved external symbol _IID_ISampleGrabber
 error LNK2001: unresolved external symbol _CLSID_SampleGrabber系统是vc6+sp6+dx9sdk怎么会这样?

解决方案 »

  1.   

    你可能在Project——Setting里面少包含某个lib,检查一下dx9sdk的说明
      

  2.   

    跟机器会有什么关系呢.我已经把dx的include和lib都加到最前了.
    大多数情况就是单单找不到这两个symbol.
      

  3.   

    搜索一下,可能是别的地方定义的
    我估计sample是makefile写的吧。
    搜索_IID_ISampleGrabber,别的地方可能对接口定义了,你的程序中引用了。
      

  4.   

    我搜了google 
    搜了dx sdk
    CLSID_SampleGrabber在qedit.h中
    照理来讲它下面跟的#ifdef __cplusplusclass DECLSPEC_UUID("C1F400A0-3F08-11d3-9F0B-006008039E37")
    SampleGrabber;
    #endif
    会生出一个CLSID_SampleGrabber定义啊.我就觉得vc6是不是要特殊配置.大家下一下
    http://www.codeproject.com/audio/framegrabber.asp
    看看是不是编译通过了
      

  5.   

    不是在qedit.h中吗?
    #include "...\qedit.h"
      

  6.   

    我现在用#define DEFINE_GUID(name, l, w1, w2, b1, b2, b3, b4, b5, b6, b7, b8) \
            EXTERN_C const GUID name \
                    = { l, w1, w2, { b1, b2,  b3,  b4,  b5,  b6,  b7,  b8 } }DEFINE_GUID(CLSID_SampleGrabber,0xC1F400A0,0x3F08,0x11d3,0x9F,0x0B,0x00,0x60,0x08,0x03,0x9e,0x37);
    DEFINE_GUID(IID_ISampleGrabber,0x6B652FFF,0x11FE,0x4fce,0x92,0xad,0x02,0x66,0xb5,0xd7,0xc7,0x8f);
    代替.不过这可不是什么幽雅的方案.
    你们下的可以直接编译过?
      

  7.   

    RequirementsHeader: Include Qedit.h. This header file is not compatible with Microsoft® Direct3D® headers later than version 7.Library: Use strmiids.lib.看楼主的提示信息应该是已经包含了qedit.h,但同时应该链接strmiids.lib.
      

  8.   

    果然!原来的工程(包括dxsdk自带的)都连接strmbase.lib.
    替换成strmiids.lib就全部编译过了.
      

  9.   

    DentistryDoctor(雅克医生<医德,值得反思>) 看到的Requirements是在哪里找到的?