У меня есть некоторые реальные трудности при переносе действительно старого проекта Visual Studio 97 C ++ в Visual Studio 2010. Позвольте мне сначала немного рассказать об ошибках, которые я получил непосредственно перед этой новой ошибкой LNK1224, потому что они могут быть связаны, но я не уверен.
До моей новой ошибки я получал эту ошибку:
error LNK2005: "void __cdecl operator delete(void *)" (??3@YAXPAX@Z) already defined in LIBCMT.lib(delete.obj) nafxcw.lib(afxmem.obj)
В ходе некоторых копаний я обнаружил, что причиной этой ошибки было то, что библиотеки MFC и CRT содержат определения «new» и «delete», поэтому они сталкивались. Microsoft предоставляет 2 решения для этого подробно в http://support.microsoft.com/kb/q148652/. Одним из них было убедиться, что во всех ваших файлах вы всегда в первую очередь включаете заголовки MFC (afx stuff) В этом проекте около 100 файлов, и я просто устал пытаться найти файлы, которые включали ресурсы, в неправильном порядке. Поэтому я выбрал другое решение, которое в основном заставляет библиотеки загружаться в определенном порядке. По сути, вы должны указать компилятору игнорировать определенную библиотеку, чтобы вы могли явно загрузить ее самостоятельно в выбранном вами порядке. В моем случае это был nafxcw.lib.
Таким образом, в разделе «Свойства проекта» -> «Линкер» -> «Ввод» я явно проигнорировал файл nafxcw.lib, а затем явно включил его в начало списка.
Так что после этого мои ошибки LNK2005 исчезли. Но они были заменены одной ошибкой ссылки.
error LNK1224: invalid image base 0x287600000
Я не знаю, правильно ли я исправил свои предыдущие ошибки ссылки, и эта новая ошибка ссылки фактически является следующей вещью, с которой мне приходится иметь дело, или я просто создал более критическую ошибку ссылки, которая в основном останавливает процесс компоновки перед он попадает в мои оригинальные ошибки LNK2005. В любом случае, я не нашел много информации об этой ошибке. Microsoft не говорит много в этой ссылке об этом http://msdn.microsoft.com/en-us/library/3ya3f8wz%28v=vs.80%29.aspx
Вы указали неверный базовый адрес для изображения. Базовые адреса должны быть выровнены по 64 КБ (последние четыре шестнадцатеричных цифры должны быть равны нулю), а базовый адрес должен соответствовать 32-битному знаку или знаку без знака.
Это не так уж полезно для меня, и, похоже, нет никаких других подсказок относительно того, откуда возникла эта проблема. Я не знаю, каков будет следующий шаг.