未解析的外部符号... QueryInterface

时间:2009-07-17 15:52:46

标签: c++ com components

我有一个非托管的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

我做错了什么?

2 个答案:

答案 0 :(得分:1)

感谢您的回答,但问题最终似乎是我从构造函数中尝试QueryInterface。一旦我将它移动到一个单独的方法,一切正常。

有没有人知道为什么你不能从构造函数调用QueryInterface?

答案 1 :(得分:0)

问题是您没有正确链接到ATL lib文件。检查Visual Studio中的项目选项,并确保静态链接到ATL。