Fehler LNK2001: nicht aufgelöstes externes symbol
Ich bin converting mein Projekt aus vc6 und VS 2010.Wenn ich mein Projekt kompilieren, bekomme ich Fehler wie unten für Mai .lib-Eingänge. Ich habe alle diese lib in den Linker-> Eingang-> Zusätzliche Abhängigkeiten, auch wenn der Weg von diesen .lib-Dateien in der Link->allgemein->Zusätzliche Bibliothek-Verzeichnisse. Jeder Tipp wird sehr hilfreich sein.
lb0.lib(ob0.obj) :error LNK2001: unresolved external symbol "void __stdcall SetLastExP(class ExceptionClass *)" (?SetLastExP@@YGXPAVExceptionClass@@@Z)
lb1.lib(ob1.obj) : error LNK2001: unresolved external symbol "void __stdcall SetLastExP(class ExceptionClass *)" (?SetLastExP@@YGXPAVExceptionClass@@@Z)
lb2.lib(ob2.obj) : error LNK2001: unresolved external symbol "void __stdcall SetLastExP(class ExceptionClass *)" (?SetLastExP@@YGXPAVExceptionClass@@@Z)
lb3.lib(ob3.obj) : error LNK2001: unresolved external symbol "void __stdcall SetLastExP(class ExceptionClass *)" (?SetLastExP@@YGXPAVExceptionClass@@@Z)
lb3.lib(ob4.obj) : error LNK2001: unresolved external symbol "void __stdcall SetLastExP(class ExceptionClass *)" (?SetLastExP@@YGXPAVExceptionClass@@@Z)
lb3.lib(ob5.obj) : error LNK2001: unresolved external symbol "void __stdcall SetLastExP(class ExceptionClass *)" (?SetLastExP@@YGXPAVExceptionClass@@@Z)
lb4.lib(0b6.obj) : error LNK2001: unresolved external symbol "void __stdcall SetLastExP(class ExceptionClass *)" (?SetLastExP@@YGXPAVExceptionClass@@@Z)
Dank
Ich mag mich irren, aber ich denke, dass microsoft die Standardeinstellung geändert TCHAR definition der form char, wchar, da VC++ 6. Es könnte sein, dass Ihre bisherige lib exportiert, char* in der Signatur der Methode, aber der neue code ist auf der Suche nach wchar. Wenn dies der Fall ist, dann könnten Sie kompilieren Sie die Bibliothek, oder ändern Sie den Standard-Zeichensatz in deinem neuen Projekt.
Hi Jimmy, Beide meine lib und mein Projekt nur wchar.
Ich fürchte, ich weiß nicht, was schlagen andere als überprüfen der Signaturen sehr sorgfältig (einschließlich call type Parameter). Aus Interesse, gibt es in Ihrem Programm link, um alle anderen Methoden auf die zzzClass? Ist zzzClass eine vorgefertigte Klasse? Sorry
sind Sie absolut sicher, dass zzzClass::SetAaF hat eine Funktion im Körper zzz.cpp??
Ja, die zzzClass::SetAaF hat eine Funktion im Körper zzz.cpp.
Hi Jimmy, Beide meine lib und mein Projekt nur wchar.
Ich fürchte, ich weiß nicht, was schlagen andere als überprüfen der Signaturen sehr sorgfältig (einschließlich call type Parameter). Aus Interesse, gibt es in Ihrem Programm link, um alle anderen Methoden auf die zzzClass? Ist zzzClass eine vorgefertigte Klasse? Sorry
sind Sie absolut sicher, dass zzzClass::SetAaF hat eine Funktion im Körper zzz.cpp??
Ja, die zzzClass::SetAaF hat eine Funktion im Körper zzz.cpp.
InformationsquelleAutor Arvind | 2011-02-16
Du musst angemeldet sein, um einen Kommentar abzugeben.
Müssen Sie identifizieren, wo die
SetLastExP()
Funktion definiert ist.Bekommen .obj-Datei und überprüfen Sie mit dumpbin, wenn es implementiert in der Dekoration, die Sie erwarten.
Vergleichen Sie die Dekoration sehen Sie mit der Dekoration haben Sie in der Linker-Fehlermeldung.
Vermutlich die Funktion ist definiert als
extern "C"
während Sie Ihre header-Datei nicht spiegeln dies wider.InformationsquelleAutor harper
Manchmal, wenn Sie verschiedene Zeichensätze (
Configuration properties
->general
) in Ihrem Vorhaben, Visual Studio zeigt diese Fehlermeldung:InformationsquelleAutor Patrick