Delphi-PRAXiS
Seite 2 von 3     12 3      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Fragen zum TThread, Programm absturzsicher? (https://www.delphipraxis.net/128789-fragen-zum-tthread-programm-absturzsicher.html)

BAMatze 6. Feb 2009 10:23

Re: Fragen zum TThread, Programm absturzsicher?
 
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:

Zitat von sirius
Warum sollte das Delphi nicht anzeigen können?

Hier ein kurzer auszug aus dem Programmierhandbuch.

himitsu 6. Feb 2009 10:38

Re: Fragen zum TThread, Programm absturzsicher?
 
Zitat:

Zitat von BAMatze
wie mein Problem mit einer DLL in C oder VB gelöst wird,

Na wenn es angeblich in Delphi nicht Möglich ist, dann einfach in einer der anderen Sprachen, mit denen es geht, drauf zugreifen.

Also dein Delphiprogramm sagt z.B. der in C geschriebenen DLL was es haben möchte, diese holt beispielsweise das Bild, wandelt es notfalls in ein für Delphi verständliches Format um und gibt es dann an dein Programm weiter.

Aber vermutlich am Besten wäre es rauszufinden warum das nicht direkt in Delphi gehen soll und den Zugriff womöglich doch noch hinzubekommen.

sirius 6. Feb 2009 10:43

Re: Fragen zum TThread, Programm absturzsicher?
 
Also da steht, man sollte es nicht in Delphi programmieren, weil:
"Es müssen eigene Header Dateien erstellt werden."
Ist ja schön, dass auf das ActiveX-Control verwiesen wird, aber wenn das fehlerhaft ist, muss man eben ein Schritt zurück gehen.

Also wenn das diese Community hier nicht schafft.... Wie sehen denn die C-Header aus?

BAMatze 6. Feb 2009 10:53

Re: Fragen zum TThread, Programm absturzsicher?
 
Liste der Anhänge anzeigen (Anzahl: 3)
Zitat:

Zitat von sirius
Also da steht, man sollte es nicht in Delphi programmieren, weil:
"Es müssen eigene Header Dateien erstellt werden."
Ist ja schön, dass auf das ActiveX-Control verwiesen wird, aber wenn das fehlerhaft ist, muss man eben ein Schritt zurück gehen.

Also wenn das diese Community hier nicht schafft.... Wie sehen denn die C-Header aus?

Also die Header sind ziemlich unübersichtlich, da hat sich ein ausgebildeter Informatiker mal richtig ausgetobt. Konnte zwar einige Daten entnehmen, aber für jemanden, der nicht versiert in C/C++ ist, leider unmöglich dort wirklich alles zu verstehen.

nahpets 6. Feb 2009 11:08

Re: Fragen zum TThread, Programm absturzsicher?
 
Hallo,

schau mal bitte bei Dr. Bob nach:
http://www.drbob42.com/headconv/index.htm
Auf der Seite bekommst Du ein Tool, das aus C-Headerdateien Pascal/Delphi-Units macht. Eventuell reicht das ja schon für Deine Aufgabe.

BAMatze 6. Feb 2009 13:50

Re: Fragen zum TThread, Programm absturzsicher?
 
Hmm bin jetzt irritiert, da bei einem Versuch auch der Hauptthread gecrasht ist, obwohl eine Exception nur im Nebenthread aufgetreten ist. Also gehe ich jetzt mal davon aus, dass dies wie meine erste Frage implizierte wohl doch nicht funktioniert. Oder mache ich da etwas falsch oder habe ich was übersehen?

Sunlight7 6. Feb 2009 14:07

Re: Fragen zum TThread, Programm absturzsicher?
 
Zitat:

Zitat von Sunlight7
Zitat:

Zitat von sirius
Wird ein einem Kindthread eine Excepütion nicht abgefangen beendet das nur diesen Thread.

Sicher?
Zumindest in ältere Delphis stürtzt das Programm ab.

...



Versuchs mit try-except in Deinem Thread die Exceptions abzufangen, das läßt Deine Anwendung am Leben ;)

himitsu 6. Feb 2009 14:13

Re: Fragen zum TThread, Programm absturzsicher?
 
Zitat:

Zitat von Sunlight7
Sicher?
Zumindest in ältere Delphis stürtzt das Programm ab.

ich weiß jetzt nicht wie's früher war, aber TThread schließt .Execute in einen Try-Except-Block ein (und das dann witziger Weise nochmal in 'nen Try-Finally) ... vielleicht hängt das ja damit zusammen.

Sunlight7 6. Feb 2009 14:42

Re: Fragen zum TThread, Programm absturzsicher?
 
Hab mal eben getestet:

D2: Fehlermeldung, Programm beendet
D5: Programm beendet sich ohne Fehlermeldung :shock:
BDS 10: Nix tut sich


@TE: Einfach mal in nem neuem Projekt testen, was Dein Delphi so an Verhalten compiliert.

Edit: Find ich schon witzig, das in zB BDS 10 die Exception einfach so per Standard verschluckt werden..

himitsu 6. Feb 2009 15:03

Re: Fragen zum TThread, Programm absturzsicher?
 
in D7 dürfte es auch nicht abstürzen

und so einfach verschlugt wird die Exception nicht wirklich

{} ist in D2009 drin und gab's in D7 noch nicht
Delphi-Quellcode:
function ThreadProc(Thread: TThread): Integer;
var
  FreeThread: Boolean;
begin
  {}InternalCurrentThread := Thread;
  {}if Thread.FSuspended then sem_wait(Thread.FCreateSuspendedSem);
  try
    if not Thread.Terminated then
    try
      Thread.Execute;
    except
      Thread.FFatalException := AcquireExceptionObject;
    end;
  finally
    FreeThread := Thread.FFreeOnTerminate;
    Result := Thread.FReturnValue;
    Thread.DoTerminate;
    Thread.FFinished := True;
    SignalSyncEvent;
    if FreeThread then Thread.Free;
    EndThread(Result);
  end;
end;


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:45 Uhr.
Seite 2 von 3     12 3      

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz