2011-02-23 387 views
2

我recieving以下錯誤:LNK2001:無法解析的外部符號「類ATL :: CStringT ......」

Error 1 error LNK2001: unresolved external symbol "class ATL::CStringT<wchar_t,class StrTraitMFC_DLL<wchar_t,class ATL::ChTraitsCRT<wchar_t> > > __cdecl messageForCode(int,class ATL::CStringT<wchar_t,class StrTraitMFC_DLL<wchar_t,class ATL::ChTraitsCRT<wchar_t> > >)" ([email protected]@[email protected][email protected][email protected][email protected]@@@@@[email protected]@[email protected]@Z) MyUIDlg.obj 
Error 2 fatal error LNK1120: 1 unresolved externals C:\Documents and Settings\Administrator\Desktop\my-project\MyUI\Release\MyUI.exe 

messageForCode是一個項目MyLibrary被編譯成靜態庫中定義。這個庫不依賴於MFC,因此包含使用「#include」的CString。它自己編譯好。

MyUI是由於上述錯誤而無法編譯的.exe項目。它使用MFC。我所理解的一個理論是MFC中的CString和atlstr.h中的CString之間存在衝突。我嘗試在兩個項目的設置中靜態和動態鏈接到ATL,但我無法解決錯誤。

回答

1

messageForCode是用C還是C++實現的?如果它是用C實現的,你需要用'extern「C」'來包裝它的聲明。

相關問題