Неразрешенная внешняя символьная ошибка, возникающая только в 64-битном режиме, а не в 32-битной сборке

У меня есть код VC ++ (созданный с использованием VS2008), который использует некоторые статические библиотеки (файлы * .lib, связанные статически во время компиляции).

Для простоты понимания давайтеs ссылается на мой EXE-код как "AAA.EXE» & ссылаться на файлы lib как "A.lib», b.lib и т. д ...

Код AAA.EXE и код статических библиотек создаются с использованием VS2008.

Я вижу, что мойAAA.EXE» работает нормально в 32-битной версии и показывает следующие ошибки компоновщика при сборке AAA.EXE в 64-битном режиме.

Конечно, я перестроил статические библиотеки в 64-битном режиме и предоставил путь к lib в моем AAA.EXE следующим образом: "Свойства конфигурации проекта, соответствующие AAA.EXE -> Линкер -> Общий / Input».

Эта ошибка компоновщика действительно беспокоит меня долгое время. Любая помощь очень ценится.

Logger.lib(Loggerr.obj) : error LNK2001: unresolved external symbol "__declspec(dllimport) public: __thiscall CWTTLogger::CWTTLogger(void)" (__imp_??0CWTTLogger@@QAE@XZ)    

1>Logger.lib(Logger.obj) : error LNK2001: unresolved external symbol "__declspec(dllimport) public: virtual __thiscall CWTTLogger::~CWTTLogger(void)" (__imp_??1CWTTLogger@@UAE@XZ)    

1>Logger.lib(Logger.obj) : error LNK2001: unresolved external symbol "__declspec(dllimport) public: long __thiscall CWTTLogger::FunctionA(unsigned short *,long *)" (__imp_?FunctionA@CWTTLogger@@QAEJPAGPAJ@Z)     

1>Logger.lib(Logger.obj) : error LNK2001: unresolved external symbol "__declspec(dllimport) public: long __thiscall CWTTLogger::FunctionB(unsigned short *,long)" (__imp_?FunctionB@CWTTLogger@@QAEJPAGJ@Z)     

1>Logger.lib(Logger.obj) : error LNK2001: unresolved external symbol "__declspec(dllimport) public: long __thiscall CWTTLogger::FunctionC(unsigned short *,unsigned long,unsigned short *,long)" (__imp_?FunctionC@CWTTLogger@@QAEJPAGK0J@Z)     

1>Logger.lib(Logger.obj) : error LNK2001: unresolved external symbol "__declspec(dllimport) public: long __cdecl CWTTLogger::FunctionD(unsigned long,long,...)" (__imp_?FunctionD@CWTTLogger@@QAAJKJZZ)             

1>Logger.lib(Logger.obj) : error LNK2001: unresolved external symbol "__declspec(dllimport) public: long __thiscall CWTTLogger::FunctionE(unsigned short *,long)" (__imp_?FunctionE@CWTTLogger@@QAEJPAGJ@Z)         


1>C:\Users\User1\Documents\XYZ\Code\64bit\aaa.exe: fatal error LNK1120: 7 unresolved externals

Также добавить:

Я сделал 2 изменения в настройках, чтобы сделать мой код AAA.exe 64-битным из 32-битного :: 1)

2)

Конечно, код совместим как для 32-битных и 64-битный. Закончены ли эти 2 изменения настроек в VC2008 для создания 64-битной сборки 32-битного кода AAA.exe?

Глядя на другую ссылку на stackoverflow, я вижу, что есть еще одна настройкаСвойства конфигурации проекта -> Linker-> дополнительно-> Целевой компьютер по умолчанию "не установлен" и если я сделаю целевую машину == "MACHINEx64", Я получаю ошибку другого рода, которую я получал раньше :: "

фатальная ошибка LNK1112: тип машины модуля 'X86' конфликтует с типом целевой машины '64' "Я

Я действительно не имею ясности, если я должен установить "Целевая машина " поле в опции компоновщика как "Не установлен" или же "MACHINEx64" ?

Если оно'с "ДА"Мне нужно выяснить, как решить проблему.

Ответы на вопрос(4)

Ваш ответ на вопрос