各位大侠,偶在VS2003下面编译以后,出现以下链接错误:
RawVideoPlay.obj : error LNK2001: 无法解析的外部符号 _IID_IVMRWindowlessControl9
USBVideoCapture.obj : error LNK2001: 无法解析的外部符号 _IID_IVMRWindowlessControl9
VideoPlay.obj : error LNK2001: 无法解析的外部符号 _IID_IVMRWindowlessControl9
RawVideoPlay.obj : error LNK2001: 无法解析的外部符号 _IID_IVMRFilterConfig9
USBVideoCapture.obj : error LNK2001: 无法解析的外部符号 _IID_IVMRFilterConfig9
VideoPlay.obj : error LNK2019: 无法解析的外部符号 _IID_IVMRFilterConfig9 ,该符号在函数 "public: bool __thiscall CVideoPlay::InitVMR(struct HWND__ *)" (?InitVMR@CVideoPlay@@QAE_NPAUHWND__@@@Z) 中被引用
VideoPlay.obj : error LNK2001: 无法解析的外部符号 _IID_IVMRMixerBitmap9
VideoPlay.obj : error LNK2001: 无法解析的外部符号 _IID_IVMRMixerControl9
其实,其他的DirectShow链接库都已经用上:
#pragma comment(lib, "quartz.lib")
#pragma comment(lib, "winmm.lib")
#pragma comment(lib, "msacm32.lib")
#pragma comment(lib, "olepro32.lib")
#pragma comment(lib, "strmiids.lib")
并且IBaseFilter、IMediaControl等基本接口并未爆出链接错误问题,而只有VMR部分出了问题,请各位大侠帮忙解决一下。
------解决方案--------------------------------------------------------
VMR9的头文件也包含了吗?
------解决方案--------------------------------------------------------
库文件位置放的对吗?
------解决方案--------------------------------------------------------
strmbasd.lib
------解决方案--------------------------------------------------------
应该是strmbasd.lib的问题,这个是debug库,需要和你当前工程的编译条件一致才能通过,都设成MTD,strmbasd默认是md,你的工程可能是MTD的。这个问题和头文件没关系