EExternalException (nur) bei Standalone Exe (war: *.exe File)
-
Hallo,
ich habe die unter "FAQ-Index -> Allgemein -> Standalone Exe" Dinge zur Erstellung einer exe Datei angewendet. Leider ist bei mir danach immer das Problem aufgetrete, dass folgende Fehlermeldung kam.
Woran liegt das?Danke im Voraus ...
http://home.austrosearch.at/lysann/fehler.jpgEdit:
Bitte aussagekräftige Überschriften wählen. Danke!
-
An welcher Stelle tritt die Exception auf, wo steht der Cursor, wenn du mit F9 oder F8 weitermachst?
Und wenn du als nicht-Standalone compilierst läuft derselbe Code problemlos?
-
Ja, wenn ich Standalone compiliere läuft alles Problemlos.
Der Fehler tritt auf, bevor das Programm beendet ist, nach dem klick auf "beenden". Eigentlich läuft bis dahin alles Problemlos.
Der Cursor steht bei Quelltext, der eigentlich gar nicht aufgerufen wurde. Es gibt einen Button, der ein anderes StringGrid bearbeitet und da steht der Cursor, obwohl der Button gar nicht angeklickt wurde.
Sobald ich den Hacken wieder rein mache (Projekt -> Optionen -> Linker -> Dynamische RTL verwenden) geht alles ohne Probleme ....

-
hast du vielleicht bei dem OnClose()-Ereignis deines Forms die methode des Buttons angegeben? oder hast du da überhaupt was drin ( bei OnClose oder auch OnCloseQuery ).
oder hat dein fenster ein tray icon ?
MFG Simon
-
Ich beende mein Programm mit einem Menu-Item und dahinter steckt:
Close();Liegt es daran?
-
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?

-
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
-
Hallo
wenn du FormClose nicht ausfuehrst (return als erstes )
kommt dann die fehlermeldung oder nichtMfG
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
akariOK, danke. Ist bei mir auch an, bringt also auch keine Lösung

bis bald