Forum Delphi.cz

FreePascal (FPC) a Lazarus => Obecné => Téma založeno: Libor.Karko 10-06-2018, 11:20:43

Název: Vlakno jako funkce
Přispěvatel: Libor.Karko 10-06-2018, 11:20:43
Dobrý den.Můj první pokus v lazaru.
Toto funkční v delphi.
Kód: [Vybrat]
Function OtevriThread(Param: Pointer): Longint;
begin
  beep;
end;


procedure TForm1.Button1Click(Sender: TObject);
var
 thh: THandle;
 thid: Cardinal;
begin
 thh:=BeginThread(nil,0,@OtevriThread,nil,0,thid);
 if (thh<>0) then CloseHandle(thh);
end;

Přes lazarus se mu nelibí CloseHandle"
unit1.pas(42,19) Error: Identifier not found "CloseHandle"

I když se mi to podaří rozjet pod win, půjde to i pod linuxem?
Název: Re:Vlakno jako funkce
Přispěvatel: Ondřej Pokorný 10-06-2018, 13:26:37
Klikni si na BeginThread pomocí Ctrl+levá myš a uvidíš, co všechno máš pro thready k dispozici v FPC. Mimo jiné i CloseThread, ten pod Windows volá právě CloseHandle.
Název: Re:Vlakno jako funkce
Přispěvatel: Libor.Karko 10-06-2018, 15:35:46
Zkoušel jsem a je tam  ;)
Proč mi to pak vyhazuje chybu?
Název: Re:Vlakno jako funkce
Přispěvatel: Libor.Karko 10-06-2018, 16:21:14
I tam je   function CloseThread (threadHandle : TThreadID) : dword;
Název: Re:Vlakno jako funkce
Přispěvatel: Libor.Karko 10-06-2018, 16:50:20
Tak stačilo zaměnít na CloseThread  ;)
Jsem to ale plantala  ;D
Název: Re:Vlakno jako funkce
Přispěvatel: Libor.Karko 10-06-2018, 17:00:39
Ve win je to ok, ale v linuxu to místo ukončení vlákna ukončí celou aplikací  >:(