Kein normaler Linkerfehler
-
Hi all,
ich programmiere schon eine Weile und hatte auch schon ein paar Linkerfehler in der Vergangenheit. Die meisten dabei waren der Natur: "Unresolved external Symbol..."
Bis jetzt konnte ich solche Fehler auch finde und beseitigen.Nun will das nicht so ganz.
Zu dem Projekt:
Ich habe es nicht selbst geschrieben und ich weiß auch nicht ganz was es macht, aber ich soll es vom Micrsoft Visual C++ 6.0 auf das 2005er Studio portieren.Dabei kommen mehrere Linkerfehler (egal ob release oder debug):
<Name_einer_cpp_datei>.obj : error LNK2001: unresolved external symbol "unsigned int (__stdcall* ATL::g_pfnGetThreadACP)(void)" (?g_pfnGetThreadACP@ATL@@3P6GIXZA)
AcceptDialog.obj : error LNK2019: unresolved external symbol "unsigned int (__stdcall* ATL::g_pfnGetThreadACP)(void)" (?g_pfnGetThreadACP@ATL@@3P6GIXZA) referenced in function "unsigned int __stdcall ATL::_AtlGetConversionACP(void)" (?_AtlGetConversionACP@ATL@@YGIXZ)
Der erste Fehler kommt öfter (8x) vor der zweite Fehler kommt nur einmal.
Ich habe nach beiden Methoden gesucht, die kommen in dem ganzen Projekt nicht vor.
Dann steht da was von ATL. Also habe ich die Einstellung in "Configuration Properties"->"Use of ATL" auf dynamisch und auch statisch gestellt und getestet -> kein Erfolg. Aber ich weiss das die Abteilung eine eigene ATL.dll hat. Also habe ich diese versucht unter den Linkereinstellungen hinzuzufügen. Das brachte aber auch keinen Erfolg.Zusammenfassung:
Ich muss davon ausgehen das der Code stimmt, da er sich mit dem alten Studio nach wie vor kompiliert und auch gelinkt wird.
Ich bin alle Einstellungen in dem alten Studio durchgegangen und habe sie mit denen im neuen verglichen.
Ich ahbe die ATL Einstellungen geändert und die eigene ATL eingebunden.Alles ohne erfolg.
Hat jemand noch eine Idee was der Fehler sien könnte????
-
Es ist nicht unwahrscheinlich, das sich einfach die ATL-API von der 6er auf die 8er geändert hat. Das sind immerhin 7 Jahre Unterschied. Änderungen gab es von der 6er auf die 7.1er, da hat sich z.B. CString von der MFC in die ATL verschoben. Also schon eine bedeutende Sache. Ich würde einfach mal in den Changelog der MSDN reinschauen, da hat MS alle Änderungen aufgeführt.
Hast du auch ein Bereinigen/Clean gemacht?
-
Ein Clean habe ich vorher immer gemacht.
Die Änderungen habe ich mir mal angeschaut, aber da habe ich nichts gefunden.
Aber was mir auffällt sind meine wenigen treffer nach GetthreadACP und GetConversionACP (auch ohne ACP) in Zusammenhang mit ATL (bei google).
Auf meinen Rechner finde ich auch keine Sourcen dazu.
Ich habe mit ATL noch nie etwas gemacht, und weiß auch fast nichts darüber, das ist natürlich nicht gerade von Vorteil.Ich habe auch die Option im Studio eingeschaltet die detailierte Infos zum linken ausgibt. Allerdings hat mir das nichts gebracht.
-
link mal atls.lib zum build.
-
You are my hero!!!!!!!!!
danke!!
Warum es funzt, werde ich dann mal morgen herausfinden. Jetzt gehts nach Hause und da wird ein bierchen aufgemacht!

Echt Danke, ich sitze da schon seit gestern Mittag dran... Du hst mich also erlöst.