EExternalException (nur) bei Standalone Exe (war: *.exe File)



  • Hast Du irgendwelche ActiveX geladen - Ich hatte sowas mal mit Windows-Mediaplayer als ActiveX.

    Lösch mal alle tds, obj- dateien und erzeuge Projekt neu!



  • ActivX bzw. andere Programme werden in diesem Programm nicht eingebunden. Es wird lediglich eine Datei gelesen, in ein StringGrid eingelesen und verändert wieder gespeichert.

    Das löschen von *.tds bzw. *.obj Dateien hat auch nichts genützt!

    Kann es an dem Close(); liegen?



  • hat inzwischen jemand eine Lösung gefunden? 😕


  • Mod

    Hallo

    was hast du sonst noch in deiner Form->Close drin stehen
    (auch in der anderen Form)

    MfG
    Klaus



  • mal sehen,
    im MainForm steht das:

    void __fastcall TMainForm::FormClose(TObject *Sender, TCloseAction &Action)
    {
      Action=caNone;
      StatusBar1->Panels->Items[2]->Text="Beenden";
      if (SomethingHasChanged && TreeView1->Enabled)
      {
        AnsiString msg="Soll das Makro '"+MakroDaten.Name+"' gespeichert werden?";
        int ret=Application->MessageBox(msg.c_str(),"Achtung",MB_YESNOCANCEL);
        if(ret==6)//ja
          SaveFile(MakroDaten.FileName);
        if(ret==2)//abbrechen
          Action=caNone;
        else
          Action=caFree;
      }else
        Action=caFree;
      if(Action==caFree)
      {
        MainForm->Visible=false;
        UnloadActionTree();
        ListView1->Items->Clear();
        TreeView1->Items->Clear();
        actualList.Item.clear();
        ActionLists.clear();
      }
    }
    

    UnloadActionTree entlädt eine dll
    actualLIst und ActionLists sind map's


  • Mod

    Hallo

    wenn du FormClose nicht ausfuehrst (return als erstes )
    kommt dann die fehlermeldung oder nicht

    MfG
    Klaus



  • Solche obskuren Sachen können natürlich immer auch eine ganz andere Ursache haben, dass einfach irgendwo Speicher zerstört wird oder so.

    Du solltest jedenfalls mal schauen, wo in deinem Programm exceptions geworfen werden können, und zwar solche, die nicht von der VCL-Klasse Exception abgeleitet sind. Das können z.B. auch STL-Exceptions sein. Genau dann kommt nämlich so eine EExternalException.

    Und bei den Debugger Options stell "Stop on C++ Exceptions" ein, dann sollte er eh dort stehenbleiben.



  • Hi,

    also ich hab in das FormClose mal zu anfang ein return eingefügt. Dehr Fehler kommt trotzdem.

    Ringding schrieb:

    Du solltest jedenfalls mal schauen, wo in deinem Programm exceptions geworfen werden können, und zwar solche, die nicht von der VCL-Klasse Exception abgeleitet sind. Das können z.B. auch STL-Exceptions sein. Genau dann kommt nämlich so eine EExternalException.

    Und bei den Debugger Options stell "Stop on C++ Exceptions" ein, dann sollte er eh dort stehenbleiben.

    1. Wie mach ich das?
    2. Wo finde ich diese Einstellungsoption?

    GRuss, Sven



  • Hallo

    Menü Tools/Debugger-Optionen, Reiter Sprach-Exceptions, CheckBox unten rechts.
    Allerdings ist bei mir die Option immer an.

    bis bald
    akari



  • Hallo

    akari schrieb:

    Hallo

    Menü Tools/Debugger-Optionen, Reiter Sprach-Exceptions, CheckBox unten rechts.
    Allerdings ist bei mir die Option immer an.

    bis bald
    akari

    OK, danke. Ist bei mir auch an, bringt also auch keine Lösung 😞

    bis bald


Anmelden zum Antworten