GetLastError 1359 (Interner Fehler)



  • Hallo Leute,

    bin langsam am Verzweifeln und bitte um eure Hilfe!!!

    ich habe eine unter Visual C++ 2008 kompilierte Dll (systemeigene). Diese wird als Plugin in eine Anwendung geladen. Die Anwendung verfügt über eine Plugin-Schnittstelle, die auch viele DLLs verwenden. Ich habe weder die Source-Dateien der Anwendung, sowei der Plugins.

    Auf manchen Systemen stürzt die Anwednung beim Schließen ab:

    Problem signature:
    Problem Event Name: BEX
    Application Name: app.exe
    Application Version: 10.0.61637.0
    Application Timestamp: 46fadb14
    Fault Module Name: MyData.dll_unloaded
    Fault Module Version: 0.0.0.0
    Fault Module Timestamp: 5062c7b2
    Exception Offset: 6d5638f3
    Exception Code: c0000005
    Exception Data: 00000008
    OS Version: 6.1.7601.2.1.0.256.48
    Locale ID: 1033

    Den Fehler kann ich nicht auf meinem Rechner reproduzieren. Für die Anwendung gibt es eine Ini-Datei, in der man die Reinfolge der Plugins festlegen kann. Wenn meine Dll an erster Stelle steht, kommt es nicht zu Absturz.

    In meine log-Datei gebe ich die Error-ID, die von GetLastError zurückgegeben wird. Das ist die:

    ID (1359) An internal error occurred

    Der Fehler-Code ist schon beim ersten und jedem darauf folgenden Aufruf der DllMain da.

    Bis jetzt hatte ich folgende Theorien:

    - Es wird von der Anwendung, oder von einem Plugin eine Ausnahme ausgelöst, meine Dll versucht darauf zu reagieren (dll mit /EHsc kompiliert) ???

    - Eines der Plugins verwendet eine Version der C++ Laufzeitbibliotheken, die sich von denen, die meine verwendet unterscheidet.???

    - Irgendwas mit der Speicherverwaltung ???

    Ich lasse mich gern belehren und bin für jeden Hinweis/Ratschlag dankbar.

    Maria



  • Es sieht so aus, als ob Deine DLL etladen wurde, Du aber wohl vergessen hast irgendeine Callback oder sowas zu unregistrieren... deshalb stürzt es ab...



  • Vielen Dank

    Den Gedanken hatte ich anfangs auch, oder, dass ich Speicher-Leichen hinterlasse.
    Nur warum existiert der Fehlercode schon zu begin?

    Kann es denn mit den C++ Laufzeit-Bibliotheken zusammen hängen?

    Die Hauptanwendung verwendet die MSVCR80.DLL, meine Dll die MSVCR90.DLL.

    Kann man da nicht irgendwie einen Trick verwenden und die Fehlermeldung unterdrücken?


Log in to reply