Я использую Visual Studio 2010 Premium. У меня есть два проекта A и B, и я пытаюсь скомпилировать их на 64-битную платформу.
Проект A выводит файлы .dll и .lib, на которые опирается проект B.
Я уже успешно скомпилировал проект A для 64-битная платформа, но при компиляции проекта BI получаю следующую ошибку:
mfcs100d.lib (nolib.obj): фатальная ошибка LNK1112: тип машины модуля 'X86' конфликтует с типом целевой машины 'x64'
В чем может быть проблема ? Я действительно не знаю, что это за файл mfcs100d.lib.
Я использовал "Dependency Walker" в файле dll проекта A, и, похоже, он полагается исключительно на 64-битные файлы dll. Кроме того, я перешел к проекту B (Страницы свойств -> Свойства конфигурации -> Компоновщик -> Дополнительно) и подтвердил, что для параметра «Целевая машина» установлено значение «MachineX64». Кроме того, в Configuration Manager платформа установлена на x64.
Кто-то сообщил мне, что проблема может быть такой:
Переходя к проекту B (Страницы свойств -> Свойства конфигурации -> C \ C ++ -> Препроцессор -> Определения препроцессора), у меня есть следующие значения:
WIN32
_DEBUG
_WINDOWS
_AFXEXT
Это действительно связано? Стоит ли заменить значение WIN32? если да, то как? Я действительно не понимаю значения этих определений и того, как их изменить.
Изменить: я просто понял, что, вероятно, это вообще не связано. Это просто определения препроцессора, такие как те, которые могут быть определены командой C ++ #define. Но я мог ошибаться.