我有一个非托管的C ++类,里面有一个com映射。 EX:
BEGIN_COM_MAP
(MyClass)
COM_INTERFACE_ENTRY(...)
END_COM_MAP
但是如果我尝试调用this-> QueryInterface,我现在从课堂内得到以下错误:
unresolved external symbol "public: virtual long __stdcall CTest::QueryInterface(struct _GUID const &,void * *)" (?QueryInterface@CTest@@UAGJABU_GUID@@PAPAX@Z) referenced in function "public: __thiscall CTest::CTest(void)" (??0CTest@@QAE@XZ)
但是现在,如果我尝试实现QueryInterface方法,我会收到以下错误:
error C2535: 'HRESULT CTest::QueryInterface(const IID &,void **) throw()' : member function already defined or declared
我做错了什么?
答案 0 :(得分:1)
感谢您的回答,但问题最终似乎是我从构造函数中尝试QueryInterface。一旦我将它移动到一个单独的方法,一切正常。
有没有人知道为什么你不能从构造函数调用QueryInterface?
答案 1 :(得分:0)
问题是您没有正确链接到ATL lib文件。检查Visual Studio中的项目选项,并确保静态链接到ATL。