Linker Fehler 2019



  • Ich bekomme folgenden Linkerfehler: error LNK2019: unresolved external symbol

    Ich rufe eine Funktion in einer entfernten Klasse auf.
    Der Linker-Fehler tritt jedoch nur auf wenn ich den Funktionsrumpf der auszuführenden Funktion in der cpp-Datei definiere. Wenn ich ihn aber direkt in der Header-Datei einfüge erscheint dieser Linker-Fehler nicht.

    Die Anwendung besteht aus 2 Projekten. Hauptprogramm + DLL. Über eine Schnittstelle rufe ich aus der DLL eine Funktion im Hauptprogramm auf. Dabei entsteht der Linker-Fehler.

    Woran kann dies liegen und wie kann ich diesen Fehler beheben?
    Ich hoffe Ihr könnt mir helfen.

    Grüße Bernd



  • Der Linker-Fehler tritt jedoch nur auf wenn ich den Funktionsrumpf der auszuführenden Funktion in der cpp-Datei definiere

    Bist du sicher, dass du die cpp-Datei mit übersetzt und das Ergebnis auch zum Programm dazugelinkt wird?



  • Bernd1Brot schrieb:

    Die Anwendung besteht aus 2 Projekten. Hauptprogramm + DLL. Über eine Schnittstelle rufe ich aus der DLL eine Funktion im Hauptprogramm auf. Dabei entsteht der Linker-Fehler.

    Hallo Bernd,

    D.h. die besagte cpp-Datei liegt nur im Hauptprogramm. So weit ich das weiß, ist es nicht möglich so aus einer Dll herauszurufen. Die DLL an sich könnte ja auch von einem anderen Prozess dynamisch gelinkt werden. Woher soll der Linker denn wissen wo die Implementierung der Funktion ist. Wenn Du diese in den Header packst, so wird sie Teil der DLL, da die Header-Datei wahrscheinlich dort inkludiert wird.
    Im Prinzip ist das ein Designfehler.

    Gruß
    Werner


Anmelden zum Antworten