Cita:
Empezado por duilioisola
Prueba con esta versión:
Notarás que hay una variable mas "P2" de tipo PChar.
Quizas la asignación directa del resultado de inet_ntoa que es PChar a String no le gusta.
|
Código Delphi
[-]function DameIPLocal: string;
var
p : PHostEnt;
s : array[0..128] of char;
p2 : PChar;
wVersionRequested : word;
wsaData : TWSAData;
begin
try
wVersionRequested := MAKEWORD(1, 1);
WSAStartup(wVersionRequested, wsaData);
GetHostName(@s, 128);
p := GetHostByName(@s);
p2 := iNet_ntoa(PInAddr(p^.h_addr_list^)^);
if (Assigned(p2)) then
Result := Result + p2
else
Result := '';
WSACleanup;
except
on E: Exception do
Result := E.Message;
end;
end;
Le agregue a tu funcion el Mensaje de Excepcion para saber si aun continua y desafortunadamente la Excepcion persiste.