AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Thread aus DLL ohne fehler schließen!!

Offene Frage von "Sillium"
Ein Thema von Sillium · begonnen am 15. Sep 2005 · letzter Beitrag vom 21. Jan 2006
Antwort Antwort
Sillium

Registriert seit: 9. Jul 2005
24 Beiträge
 
#1

Thread aus DLL ohne fehler schließen!!

  Alt 15. Sep 2005, 20:44
Hi,


ich erstelle in einer DLL einen Thread:

Delphi-Quellcode:
type
  TAnimationThread = class(TThread)
  private
    { Private declarations }
    FWnd: HWND;
    DC : HDC;
    FPaintRect: TRect;
    FfgColor: TColor;
    FInterval: integer;
  protected

  protected
    procedure Execute; override;
  public
    FName : String;
    Image :TBitmap;
    wnd : hWnd;
    procedure Ready;
    constructor Create(barcolor : TColor; name : String);
  end;

{**********************************************************************
  Konstruktor
***********************************************************************}


constructor TAnimationThread.Create(barcolor : TColor; name : string);
begin
  inherited Create(True);
  Application.CreateForm(TSplash2, Splash2);
  Splash2.Show;
  FfgColor := barColor;
  FName := name ;
  //FreeOnterminate := True;
  Resume;
end; { TAnimationThread.Create }
Im TAnimationThread.execute wird eine Form (Splash2) erstellt, die den Benutzer zeigt, dass gerade was gemacht wird (Bitte warten). Auf dieser Form läuft ein einem Panel ein Bitmap von links nach rechts und zurück............

Funktioniert alles wunderbar!

So wird der Thread aufgerufen:
Delphi-Quellcode:
{* Start-Prozedur *}
procedure DLLWorking(nameP:PChar);stdcall;
var
name:String;
ani : TAnimationThread;
begin
      name:=String(nameP);
      ani := TanimationThread.Create($00556F60, name);
      Application.ProcessMessages;
end;
Zum beenden habe ich diese Prozedur:

Delphi-Quellcode:
{* End-Prozedur *}
procedure DLLReady(wnd:Hwnd);stdcall;
var
ani : TAnimationThread;
begin
      ani.Ready; <---- schließt die Form!
      ani.Terminate; <----- soll meinen Thread beenden!!?????
end;
Wenn ich die DLL in Delphi ausführe (mit entsprechendem Projekt!) klappt alles ohne Fehler. Wenn ich allerdings das Projekt in Delphi ausführe bekomme ich einen Fehler!

Zugriffsverletzung.......

Danke für die Hilfe!

Sillium
  Mit Zitat antworten Zitat
Benutzerbild von Zacherl
Zacherl

Registriert seit: 3. Sep 2004
4.629 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#2

Re: Thread aus DLL ohne fehler schließen!!

  Alt 15. Sep 2005, 21:40
Delphi-Quellcode:
{* End-Prozedur *} 
procedure DLLReady(wnd:Hwnd);stdcall;
var
ani : TAnimationThread;
begin
      ani := TAnimationThread.Create; //Das vielleicht? Warum ist das Threadobjekt Local deklariert
      ani.Ready; <---- schließt die Form!
      ani.Terminate; <----- soll meinen Thread beenden!!?????
end;
Ani sollte Global deklariert werden und beim 1. Aufruf mit Create erzeugt werden! Da wenn ich das richtig sehe du in DLLReady einen zum 1. nicht erzeugten Thread und zum 2. nicht den mit DLLWorking gestarteten Thread beenden willst.

Florian
Projekte:
- GitHub (Profil, zyantific)
- zYan Disassembler Engine ( Zydis Online, Zydis GitHub)
  Mit Zitat antworten Zitat
Sillium

Registriert seit: 9. Jul 2005
24 Beiträge
 
#3

Re: Thread aus DLL ohne fehler schließen!!

  Alt 15. Sep 2005, 21:47
Kann man in einer DLL global deklarieren??

In DLLWorking wird mein Thread mit

 ani := TanimationThread.Create($00556F60, name); erstellt!!
  Mit Zitat antworten Zitat
Sillium

Registriert seit: 9. Jul 2005
24 Beiträge
 
#4

Re: Thread aus DLL ohne fehler schließen!!

  Alt 21. Jan 2006, 13:13
Hallo,

stehe immer noch vor dem gleichen Problem!!

Hat vielleicht jemand eine Lösung!

Kann ich in der Funktion DLLWorking ein öffentliches Handle erstellen und an DLLReady übergeben??

Aber wie??

Danke!!
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:45 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz