Nicht behobener externer Symbolfehler, der nur im 64-Bit-Modus und nicht im 32-Bit-Build auftritt

Ich habe einen VC ++ - Code (mit VS2008 erstellt), der einige statische Bibliotheken verwendet (* .lib-Dateien, die während der Kompilierungszeit statisch verknüpft sind).

Zum besseren Verständnis bezeichnen wir meinen EXE-Code als "AAA.EXE" und die lib-Dateien als "A.lib", b.lib etc ...

Sowohl der AAA.EXE-Code als auch der statische Bibliothekscode werden mit VS2008 erstellt.

Ich sehe, dass mein "AAA.EXE" in der 32-Bit-Version einwandfrei funktioniert und die folgenden Linker-Fehler anzeigt, wenn AAA.EXE im 64-Bit-Modus erstellt wird.

Ich habe natürlich die statischen Bibliotheken im 64-Bit-Modus neu erstellt und den lib-Pfad in meiner AAA.EXE wie folgt angegeben: "Projektkonfigurationseigenschaften entsprechend AAA.EXE -> Linker -> General / Input".

Dieser Linker-Fehler stört mich schon lange. Jede Hilfe wird sehr geschätzt.

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

Auch hinzuzufügen:

Ich habe 2 Änderungen an den Einstellungen vorgenommen, um meinen AAA.exe-Code 64-Bit von 32-Bit zu machen: 1)

2)

Natürlich ist der Code sowohl für 32-Bit als auch für 64-Bit kompatibel. Sind diese beiden Einstellungsänderungen in VC2008 abgeschlossen, damit der 32-Bit-AAA.exe-Code 64-Bit erstellt wird?

Wenn ich mir einen anderen Stackoverflow-Link ansehe, sehe ich, dass unter "Eigenschaften der Projektkonfiguration -> Linker-> Erweitert-> Zielcomputer" standardmäßig "nicht festgelegt" eine weitere Einstellung festgelegt ist eine andere Art von Fehler, die ich früher bekommen habe:

Schwerwiegender Fehler LNK1112: Der Modulmaschinentyp 'X86' steht im Konflikt mit dem Zielmaschinentyp 'x64'.

Ich habe wirklich keine Klarheit darüber, ob ich das Feld "Zielcomputer" in der Linker-Option auf "Nicht festgelegt" oder "MASCHINEx64" setzen soll.

Wenn es ein "JA" ist, muss ich herausfinden, wie das Problem behoben werden kann.

Antworten auf die Frage(4)

Ihre Antwort auf die Frage