本人初学ATL,第一个测试程序就出问题了。我已经包含了一个ATLTest_i.h的头文件,里面已经定义了EXTERN_C const CLSID CLSID_CATLTestClass;
EXTERN_C const IID IID_ICATLTestClass;
在我cpp的一个Test方法中有如下代码:
HRESULT hr;
ICATLTestClass* pIntf = NULL;
hr = ::CoCreateInstance(CLSID_CATLTestClass,NULL,CLSCTX_SERVER,IID_ICATLTestClass,(void **)&pIntf);
if(SUCCEEDED(hr))
{
pIntf->Welcome();
pIntf->Release();
}
出错如下:
ATLTestDlgDlg.obj : error LNK2001: 无法解析的外部符号 _CLSID_CATLTestClass
ATLTestDlgDlg.obj : error LNK2001: 无法解析的外部符号 _IID_ICATLTestClass
实在不知何故,希望有人指点一二,不胜感激!
EXTERN_C const IID IID_ICATLTestClass;
在我cpp的一个Test方法中有如下代码:
HRESULT hr;
ICATLTestClass* pIntf = NULL;
hr = ::CoCreateInstance(CLSID_CATLTestClass,NULL,CLSCTX_SERVER,IID_ICATLTestClass,(void **)&pIntf);
if(SUCCEEDED(hr))
{
pIntf->Welcome();
pIntf->Release();
}
出错如下:
ATLTestDlgDlg.obj : error LNK2001: 无法解析的外部符号 _CLSID_CATLTestClass
ATLTestDlgDlg.obj : error LNK2001: 无法解析的外部符号 _IID_ICATLTestClass
实在不知何故,希望有人指点一二,不胜感激!
EXTERN_C const IID IID_ICATLTestClass;
是声明,不是定义,你还要连接包含这两个定义的库才行