Проект C++ может быть скомпилирован VS6 без ошибок & предупреждений. С VS 2013 проф. Возникают проблемы с компоновщиками. Они предоставляют шаблон, а именно std :: basic_string.Перемещение IDE на C++ из VS 6 в VS 2013
Код был написан в 2007 году, но не по мне.
Реферирован конструктором:
vrun.obj: ошибка LNK2019: неразрешенный внешний символ «__declspec (DllImport) общественность: голец сопза * __thiscall станд :: basic_string, класс станд :: распределитель> :: c_str (void) const "(__imp_? c_str @? $ basic_s tring @ DU? $ char_traits @ D @ std @@ V? $ allocator @ D @ 2 @@ std @@ QBEPBDXZ) ссылка на забастовку" public: __thiscall VTrs :: VTrs (класс VMessageContext &) "(?? 0VDMTrs @@ QAE @ AAVVDMMessageHandlerContext @@@ Z)
В vrun.cpp:
VTrs::VTrs(VMessageContext& handler_):
Inherited(RXS::rName().c_str()),
_handler(handler_)
{
}
(c_str
->const char* c_str() const;
--- C98 стиль --- C11 не был применен в проекте до пока)
В vrun.h:
VTrs(VMessageContext&);
Реферировано оператором:
vrun.obj : error LNK2019: unresolved external symbol "__declspec(dllimport)
public: int __thiscall std::basic_string<char,struct std::char_traits<char>,cl
ass std::allocator<char> >::compare(char const *)const " ([email protected]?$basi
[email protected][email protected]@[email protected]@[email protected]@[email protected]@[email protected]@[email protected]) referenced in
function "bool __cdecl std::operator==<char,struct std::char_traits<char>,clas
s std::allocator<char> >(class std::basic_string<char,struct std::char_traits<c
har>,class std::allocator<char> > const &,char const *)" ([email protected]
[email protected]@@[email protected]@[email protected]@[email protected]@[email protected][email protected]@[email protected]@V?$a
[email protected]@[email protected]@[email protected]@Z)
Относится к стандартному оператору, как интерпретируется. (Перегрузка оператора не выполняется для ==
, которая относится к строке)
Кстати, сам код не содержит «std::basic_string
». Была прочитана статья в соответствии с msdn, но эта проблема еще не была решена.
«Обычные» проблемы, такие как модификации модификатора "C"
, уже рассмотрены для другого кода.
Любой намек на то, как с этим справиться?
EDIT: При первом запуске проекта в Visual Studio 2013 был показан вид диалогового окна преобразования. Я согласился, но это повлияло на каталоги VC++. Это было видно при сравнении файла проекта с ClearCase с предыдущей версией. UndoCheckout (через ClearCase) применил старое состояние. Теперь это работает.
RXS :: rName(). C_str() обязательно выглядит как std :: basic_string :: c_str для меня – paulm
string :: c_str() - встроенная функция, у вас никогда не должно быть зависимости от ссылки.Я могу только догадываться, что вы компилируете старую версию заголовка ''. Используйте параметр/showIncludes компиляции и убедитесь, что все файлы заголовков поступают из нужного каталога. –