Я просто реорганизовал некоторые библиотеки моего проекта Visual C ++ (7.1) и получил проблему с компоновщиком, который не могу разрешить.
Проект связывает MFC, а также стандартные библиотеки Windows, все MBCS
Где-то есть что-то вроде:
std :: stringstream sstr;
sstr << m_MyCStringVar << std :: endl; </p>
(эта строка, как и некоторые другие, нуждается в << для basic_stream и CString) </p>
Все было хорошо, пока я не слил 2 другие библиотеки в 1 (просто перемещая код / файлы из a в b без особых изменений)
Внезапно все мои exe-файлы выдают ошибку компоновщика:
BasicFunctionsD.lib (CAccess.obj): ошибка LNK2019: неразрешенный внешний символ «класс std :: basic_ostream> & оператор __cdecl << (класс std :: basic_ostream> &, класс ATL :: CStringT>> const &)» (?? 6 @ YAAAV? $ basic_ostream @ DU? $ char_traits @ D @ станд @@@ станд @@ AAV01 @ ABV? $ CStringT @ DV? $ StrTraitMFC_DLL @ DV? $ ChTraitsCRT @ D @ ATL @@@@@ АТЛ @@@ Z) упоминается в функции "protected: void __thiscall CAccessor :: CreateCategory (int, char const *, char const *)" (? CreateCategory @ CAccessor @@ IAEXHPBD0 @ Z) * 1015 *
(код выше не был затронут слиянием библиотеки, по крайней мере, напрямую)
Насколько я могу распознать, оператор << для базового ostream и CString не найден. </p>
Может быть, библиотека, содержащая версии MFC basic_ostream, не найдена?
Но я понятия не имею, как это исправить или даже с чего начать поиск настоящей проблемы.
Любые подсказки были бы хороши