Einzelnen Beitrag anzeigen

Benutzerbild von Jonas Shinaniganz
Jonas Shinaniganz

Registriert seit: 30. Aug 2011
249 Beiträge
 
Delphi XE5 Ultimate
 
#1

Ältere Funktion mit inkompatiblen Typen PAnsiChar

  Alt 22. Aug 2012, 11:47
Ich habe folgende Funktion zum ermitteln der Lokalen IP Adresse ausgegraben:

Delphi-Quellcode:
function GetLocalIP: Integer;
type
  PaPInAddr = ^TaPInAddr;
  TaPInAddr = array[0..$FFFE] of PInAddr;
var
  phe: PHostEnt;
  pptr: PaPInAddr;
  Buffer : array[0..MAXGETHOSTSTRUCT - 1] of Char;
  I: Integer;
begin
  Result := -1;
  GetHostName(Buffer, SizeOf(Buffer));
  phe := GetHostByName(Buffer);
  if phe = nil then Exit;
  pptr := PaPInAddr(Phe^.h_addr_list);
  I := 0;
  while pptr^[I] <> nil do
  begin
    Result := pptr^[I]^.S_addr;
    Inc(I);
  end;
end;
Ich weiß nicht genau welchen Datentyp Buffer annehmen muss damit die Funktionalität erhalten bleibt... Ich wollte aus Buffer einen PAnsiChar machen aber dann wird phe = nil durch die fehlgeschlagene GetHostByName Funktion... (Welche ja auch schon veraltet ist)
Die Leiter der Entwicklungsabteilung dreht total am Mausrad!
  Mit Zitat antworten Zitat