![]() |
Inkompatible Typen
Hallo liebes Forum,
ich habe hier aus dem Forum einen alten Quellcode ausgekramt. Allerdings lääst diser sich in der heutigen Delphi-Version nicht mehr kompilieren. Ich weiß allerdings auch nicht an welchen Stellen ich hier etwas korrigieren muss um das ganze lauffähig zu bekommen. Kann mir hier eventuell jemand helfen? Hier der Code dazu:
Delphi-Quellcode:
Und die Fehlermeldungen:
function TFrmVTP.DetectHostIP: Boolean;
var wsdata: TWSAData; hostname: array[0..255] of char; hostEnt: PHostEnt; addr: PChar; begin WSAStartup($0101,wsdata); try gethostname(hostname,sizeof(hostname)); hostEnt := gethostbyname(hostname); if Assigned(hostEnt) then if Assigned(hostEnt^.h_addr_list) then begin addr := hostEnt^.h_addr_list^; if Assigned(addr) then begin HostIP := Format('%d.%d.%d.%d',[byte(addr[0]),byte(addr[1]),byte(addr[2]),byte(addr[3])]); Result := True; end else Result := False; end else Result := False else begin MessageDlg(Format('WinSock Error %d', [WSAGetLastError]),mtError,[mbOK],0); Result := False; end; finally WSACleanup; end; end;
Delphi-Quellcode:
Die Fhler beziehen sich hier auf die Zeilen 10, 11 und 15.
E2010 Inkompatible Typen: 'PAnsiChar' und 'array[0..255] of Char'
E2010 Inkompatible Typen: 'PAnsiChar' und 'array[0..255] of Char' E2010 Inkompatible Typen: 'PWideChar' und 'PAnsiChar' Vielen Dank schon mal. gruß |
AW: Inkompatible Typen
probiere mal
Delphi-Quellcode:
nach
addr: PChar;
Delphi-Quellcode:
umzubenennen. Klappts?
addr: PAnsiChar;
//edit vergessen:
Delphi-Quellcode:
->
hostname: array[0..255] of char;
Delphi-Quellcode:
hostname: array[0..255] of Ansichar;
|
AW: Inkompatible Typen
Funktioniert perfekt. Vielen Dank!:-D
|
AW: Inkompatible Typen
Ist doch schön wenn's flutscht und gern geschehn (hatte schon angst das nun noch mehr fehler kommen wegen ansi)
|
AW: Inkompatible Typen
Zusatz:
mit Delphi Rio würde ich es so in etwa machen:
Delphi-Quellcode:
uses IdStack;
//lokale function GetIP : String; begin TIdStack.IncUsage; try Result := GStack.LocalAddress; finally TIdStack.DecUsage; end; end; //vom host function GetIP(const HostName: string): string; var WSAData: TWSAData; R: PHostEnt; A: TInAddr; begin Result := IPNULL; // '0.0.0.0' WSAStartup($101, WSAData); R := Winsock.GetHostByName(PAnsiChar(AnsiString(HostName))); if Assigned(R) then begin A := PInAddr(r^.h_Addr_List^)^; Result := WinSock.inet_ntoa(A); end; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:28 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz