Windows DLL: Keine Fehlermeldung wenn DLL fehlt - warum?
-
Hallo zusammen,
Ich habe eine kleine Windows-Anwendung erstellt die fertige Run-Time-DLLs benötigt.
Leider hatte ich von 3 benötigten DLLs zunächst nur 2 zur exe kopiert, ohne dass mir bewusst war dass da noch eine fehlt.Das Resultat war, immer wenn ich im C-Code meiner exe bestimmte Funktionsaufrufe drin hatte, das Programm sich sofort nach dem Starten wieder beendet hat.
Leider ohne Fehlermeldung. Debuggen konnte man auch nicht, weil das Prorgamm beendet war befor der Debuggre drankommt.
Irgendwann hab ichs dann gemerkt, die fehlende DLL kopier und dann lief es.
Aber warum bekomme ich von Windows keine Fehlermeldung wenn eine DLL fehlt?
Ich erinnere mich, dass ich solche Fehlermeldungen schon bei anderen Programmen gesehen habe.
-
stefan-tiger schrieb:
Ich erinnere mich, dass ich solche Fehlermeldungen schon bei anderen Programmen gesehen habe.
Wenn du dynamisch gegen eine DLL linkst, dann wird sie zur Laufzeit irgendwann geladen. Wenn das Laden schief läuft, gibts einen Fehler, den dein Programm behandeln muss, z.B. durch eine Fehlermeldung, wie du sie von anderen Programmen kennst. Ist das Programm schlampig Programmiert und fängt den Fehler nicht ab, kommts eben zum Absturz
-
Das Problem kenne ich auch. Wenn du die Anwendung ohne Debugger ausführst, sollte eine Fehlermeldung erscheinen.