Kann man in VC++2005 bestimmte Exceptions für eine DLL im Projekt abstellen?



  • Hiho zusammen!

    ich würde gerne wissen, ob/wie man einstellen kann, dass der Debugger bei einer Access Violation in einer bestimmten DLL meines Projektes nicht mehr anspringt. Für alle Access Violations im übrigen Projekt, soll er allerdings weiter den Fehler melden. Ist dies möglich? Wenn ja, wie?

    (IDE ist Microsoft Visual C++ 2005 - Team Suite.)

    Hintergrund: Ich verwende eine DLL (FModEx.dll, siehe www.fmod.org ), die irgendwie laufend Fehler produziert (eben Access Violation's), mein Programm davon aber nicht abstürzt. Irgendwie sehr konfus (Falls ihr zu dem Problem selbst eine Lösung kennt, natürlich noch besser 😉 ).

    Schonmal danke für Antworten! 🙂

    PS: Da sich dieser Thread thematisch möglicherweise Richtung "WinAPI" entwickelt, hab ich nicht im Sub-Forum "Compiler- und IDE-Forum" gepostet 😉 .



  • AFAIK kann man das nur "Prozessweit" (was ja auch sinnvoll/logisch ist).
    Siehe: Debug|Exceptions...|Win32 Exceptions|c0000005 Access violation



  • Hm, joar die Einstellung kenn ich... . Nur falls sich dann in meinem Programm Access Violations befinden, bekomm ich davon ja nix mehr mit. Diese DLL geht mir echt gehörig aufen Geist...wie ist das eigentlich möglich, dass eine DLL so gravierende Fehler produziert, davon mein Programm aber nit abschmiert (mal ganz zu schweigen vom Programmierstil dieser DLL^^)?

    PS (@Jochen): Nochmal danke für das Abo, war echt nützlich 👍 - Falls Du nochmal eins überhast, kannst Dich gerne melden 😉 ^^.



  • __try
    {
    }
    __expect(EXCEPTION_EXECUTE_HANDLER)
    {
    }
    

    Bzgl. den Einstellungen: Hast Du dort ein Häckchen bei "Thrown"? Mach das mal raus...

    "Thrown" heisst, dass der Debugger anhält, wenn die Exception geworfen wird. SOnst hält er nur an, wenn die Exception nicht aufgefangen wird (was Du ja eigentlich willst).



  • Also glaube bei mir heißt das glaube ich "Ausgelößt" (hab die dt. Version) und ne, da war auch kein Haken 🙄 . Aber er stoppt trotzdem *grummel*. Was meinste mit dem "__try ... __except"?



  • Und was für eine Exception kommt genau? c0000005?
    ABer ich glaube die kann man nicht abschalten... müsste mal Martin fragen...

    Mit "__try __expect" wird eine Exception einfach abgefangen und das Programm macht "normal" weiter. Ich rate aber jedem davon ab sowas zu machen... die LIB würde ich "unegöffnet zurückschicken"!



  • Also der Debugger sagt:

    Unbehandelte Ausnahme bei 0x10074a67 in GFXMMPlayer.exe: 0xC0000005: Zugriffsverletzung beim Lesen an Position 0xfeeeff92.

    Hm, naja __try/__except bringt mir glaubsch net so viel, da ich ja nit genau weiß, welche Methode(n) die Fehler verursachen.

    Naja, wegen dem "ungeöffnet zurückschicken" ... die Library ist halt Freeware, aber vllt. schick ich denen mal ne böse Mail, was sie da für einen Müll anbieten 😉 .


Anmelden zum Antworten