typy: 'String' i 'PAnsiChar'

0

mam sobie taki kod:

//Funkcja która podaje adres IP na podstawie wpisanego DNSa...
FUNCTION  GetIP_z_DNS(DNSaddr:String):String;
 type pu_long = ^u_long;
var
 WSAData :TWSAData;
 HostEnt :PHostEnt;
 InAddr  :TInAddr;
Begin
 //wywołanie biblioteki WinSock...
 if WSAStartup($101, WSAData)<>0 then Result:='Wystąpił błąd...'
 else
 begin
   HostEnt:= GetHostByName(DNSaddr);
   InAddr.S_addr:= u_long(pu_long(HostEnt^.h_addr_list^)^);
   Result:= inet_ntoa(InAddr);
   WSACleanup;  //zwolnienie biblioteki WinSock
 end;
End;

A na końcu taki błąd:
[Error] Unit1.pas(37): Incompatible types: 'String' and 'PAnsiChar'
Gdzie co zmienić żeby typy były kompatybilne??

//kod pisz w tagach do tego stosownych
//pisz sensowne tematy - m.M

0

Funkcja GetSockByName (jak nietrudno zauważyć) pobiera jako parametr zmienną typu PChar, a nie String... Jak to poprawić:
Zamiast:

HostEnt:= GetHostByName(DNSaddr);

napisz:

HostEnt:= GetHostByName(PChar(DNSaddr));

1 użytkowników online, w tym zalogowanych: 0, gości: 1