无法解析的外部符号 _CLSID_解决方法
无法解析的外部符号 _CLSID_...
本人初学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的阿,你得具体定义一下啊。如果是atl的话,应该还不能用,因为那个本身就是你自身的clsid。
------解决方案--------------------
#include "ATLTest_i.c"
试试
本人初学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的阿,你得具体定义一下啊。如果是atl的话,应该还不能用,因为那个本身就是你自身的clsid。
------解决方案--------------------
#include "ATLTest_i.c"
试试