Einzelnen Beitrag anzeigen

SebE

Registriert seit: 31. Jul 2004
Ort: Chemnitz
316 Beiträge
 
Delphi 7 Personal
 
#1

Parameterübergabe bei CreateThread

  Alt 20. Mai 2007, 10:18
Ich habe ein Objekt, welches einen Thread starten soll.
Delphi-Quellcode:
...
protected
  procedure _run(const t: pointer); stdcall;
public
    fRunProc: OBJPROC;
...
Typen sind folgendermaßen deklariert:
Delphi-Quellcode:
type
  PROC = procedure;
  OBJPROC = procedure(const t: pointer) of object; stdcall;
Konstruktor des Objekts:
Delphi-Quellcode:
constructor <Objektname>._create(myProc: PROC);
begin
inherited Create;

fRunProc := _run;
fProc := @myProc;
Aufruf des Threads:

Delphi-Quellcode:
var
  i: DWORD;
begin
i := 5;

fMainThread := CreateThread(nil, 0, @fRunProc, @i, 0, fMainThreadID) //Übergebe ich "i" richtig?
...
Meine "Thread-Routine":
Delphi-Quellcode:
procedure <Objektname>._run(const t: pointer);
var
  thread: DWORD;
  threadID: DWORD;
begin
writeln('>>', DWORD(t), '<<'); //<-- es wird "0" ausgegeben!

...
end;
Wie komme ich an den "richtigen" Wert (5)?
Sebastian
  Mit Zitat antworten Zitat