Недавно, работая над VC 6.0, я столкнулся в нескольких местах с очень досадной ошибкой. Возникает следующая ошибка: Связывание... nafxcwd.lib(afxmem.obj): ошибка LNK2005: «void * __cdecl оператор new(unsigned int)» (??2@YAPAXI@Z) уже определён в LIBCMTD.lib(new. obj) nafxcwd.lib(afxmem.obj): ошибка LNK2005: «void __cdecl оператора delete(void *)» (??3@YAXPAX@Z) уже определен в LIBCMTD.lib(dbgdel.obj) Debug/DCap exe: фатальная ошибка LNK1169: найден один или несколько многократно определенных символов. Решение: для такой ошибки очевидно, что обе связанные библиотеки предоставляют функции с одинаковым именем. Но, конечно, невозможно напрямую игнорировать LIBCMTD.lib, поскольку это библиотека C. Причина возникновения этой проблемы заключается в том, что библиотека MFC конфликтует с библиотекой C, и необходимо установить порядок их компоновки, то есть сначала nafxcwd.lib, а затем LIBCCMTD.lib. Но обе они являются библиотеками по умолчанию, так как же установить их порядок? Решение: сначала проигнорируйте их, а затем добавьте дополнительно. То есть: введите: nafxcwd.lib libcmtd.lib в разделе «Игнорировать библиотеки» на вкладке «Ссылка», затем введите: nafxcwd.lib libcmtd.lib в разделе «Модули объектов/библиотек» на той же вкладке. Таким образом, порядок их добавления становится тем порядком, который мы вынуждены установить. ?
Расширять