Я получаю следующую ошибку:
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> > >)" (?messageForCode@@YA?AV?$CStringT@_WV?$StrTraitMFC_DLL@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@HV12@@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 и поэтому включает CString с использованием "#include". Он прекрасно компилируется.
MyUI
- это проект .exe, который не удается скомпилировать из-за вышеуказанной ошибки. Он использует MFC. У меня есть теория, что существует конфликт между CString в MFC и atlstr.h
. Я попытался статически и динамически связать ATL в настройках обоих проектов, но не смог устранить ошибку.