DLL kann nicht geladen werden, Fehler 14001



  • Ich habe hier ein verzwicktes Problem, wie es manchmal so ist, auf allen Testrechnern läuft die Anwendung und beim Kunden nicht.
    Wie ich jetzt herausgefunden habe, schlägt das Laden einer mitgelieferten, notwendigen DLL fehl. Ein kleines Testprogramm, welches einfach nur einen LoadLibrary-Aufruf macht, liefert:

    GetLastError() == 14001
    "Diese Anwendung konnte nicht gestartet werden, weil die Anwenungskonfiguration nicht korrekt ist. Zur Problembehebung sollten Sie die Anwendung neu installieren."
    

    Ich habe stark im Verdacht, dass diese DLL (die nicht von mir stammt) bestimmte abhängige DLLs ihrerseits nicht laden kann. Alle Verweise, die ich durch einen Dependency-Explorer herausgefunden habe, wurden aber mitgeliefert.

    Also entweder die DLL verlangt noch eine Abhängigkeit, die nicht im Dependency-Explorer auftaucht, oder irgendeine dieser abhängigen DLLs wird statt vom Programmverzeichnis irgendwo anders hergeladen und hat die falsche Version.

    Meine Frage: wie bekomme ich heraus, was genau schief läuft?
    Das Kundensystem ist Windows XP, 32bit. Ich habe eingeschränkt Zugriff darauf, kann also auch Hilfsprogramme installieren o.ä.

    Vielleicht noch wichtig: ich liefere eine .NET-Applikation aus, die fragliche DLL ist aber unmanaged.



  • Kanns sein dass da vielleicht ein Problem mit einer Mischung von 32bit und 64bit Modulen vorliegt? Sind sämtliche mitgelieferten Dateien wirklich 32bit?



  • Ja, ich entwickle zwar auf einem 64bit-Rechner (das Kundensystem ist 32bit), aber DLLs wie Programm sind (laut den von mir verwendeten Tools) 32bit.

    Nachtrag: auf einem 32bit-Testsystem funktioniert auch alles einwandfrei.



  • Naja, guck halt mit Dependency-Walker nach...



  • hustbaer schrieb:

    Naja, guck halt mit Dependency-Walker nach...

    Vielen Dank!
    Dessen Profiling-Funktion kannte ich bisher nicht, dank derer konnte ich das Problem jetzt eingrenzen.


Anmelden zum Antworten