Unresolved external VS блуждание в 2-х соснах
Версии одного и того же файла в разных директориях
Очень неприятная ошибка. Обобенно когда не понятно в чем дело. А дело может быть вот в чем.
При включении новой версии файла (например example.cpp) кладем его в новую директорию
Если мы забудем сделать так, чтобы заголовочный файл example.h читалься бы тоже от этой версии
(А так бывает если например в соседнем каталоге лежит старая версия или ее туда подложил CVS)
, то компилятор подобрав старый заголовочный файл создаст неправильные пакованные имена функций в вызывающем модуле. Отметим, что несогласованность возникнет из-за того, что example.cpp скорее всего подцепить свой заголовок, а не указанный в пути
Пример:
Show@CExample@@QAEJXZ в example.obj, но Show@CExample@@QAEHXZ в main.obj
Решается все просто. Проверяется наличие двух заголовочных файлов example.h в разных директориях. Лишний файл стирается. Если же он не лишний то в настройках проекта указывается правильный путь.