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)?