错误 5 error LNK2019: 无法解析的外部符号 "protected: unsigned long __thiscall CMSPStream::InternalAddRef(void)" (?InternalAddRef@CMSPStream@@IAEKXZ),该符号在函数 "public: virtual unsigned long __stdcall ATL::CComObject<class CSampleMSPStream>::AddRef(void)" (?AddRef@?$CComObject@VCSampleMSPStream@@@ATL@@UAGKXZ) 中被引用 SampMsp.obj 错误 6 error LNK2019: 无法解析的外部符号 "protected: unsigned long __thiscall CMSPStream::InternalRelease(void)" (?InternalRelease@CMSPStream@@IAEKXZ),该符号在函数 "public: virtual unsigned long __stdcall ATL::CComObject<class CSampleMSPStream>::Release(void)" (?Release@?$CComObject@VCSampleMSPStream@@@ATL@@UAGKXZ) 中被引用 SampMsp.obj
这两个错误困扰了我很长时间.请高人指点迷津.
这两个错误困扰了我很长时间.请高人指点迷津.
CMSPComObject<CSampleMSPStream> * pStream;
hr = CMSPComObject<CSampleMSPStream>::CreateInstance( &pStream );
把上边最后一句注释掉,就可以编译通过.
#define DECLARE_CLASSFACTORY() DECLARE_CLASSFACTORY_EX(ATL::CComClassFactory)
#ifndef __SAMPSTRM_H_
#define __SAMPSTRM_H_#if _MSC_VER >= 1000
#pragma once
#endif // _MSC_VER >= 1000class CSampleMSPStream : public CMSPStream
{
public:
BEGIN_COM_MAP(CSampleMSPStream)
COM_INTERFACE_ENTRY_CHAIN(CMSPStream)
END_COM_MAP()public:
CSampleMSPStream();
virtual ~CSampleMSPStream();
virtual void FinalRelease();
STDMETHOD (get_Name) (
OUT BSTR * ppName
);
STDMETHOD (SelectTerminal) (
IN ITTerminal * pTerminal
); STDMETHOD (UnselectTerminal) (
IN ITTerminal * pTerminal
); STDMETHOD (StartStream) (); STDMETHOD (PauseStream) (); STDMETHOD (StopStream) ();
virtual HRESULT ProcessGraphEvent(
IN long lEventCode,
IN long lParam1,
IN long lParam2
);
virtual HRESULT FireEvent(IN MSP_CALL_EVENT type,
IN HRESULT hrError,
IN MSP_CALL_EVENT_CAUSE cause);
virtual HRESULT ConfigureTransport(void);
protected:
ULONG InternalAddRef(void);//<------------------------增加了
BOOL m_fTransportConfigured;
BOOL m_fTerminalConnected;
FILTER_STATE m_DesiredGraphState;
FILTER_STATE m_ActualGraphState;private:
HRESULT ConnectTerminal(ITTerminal * pTerminal);
HRESULT ConnectToTerminalPin(IPin * pTerminalPin);
};#endif //__SAMPSTRM_H_