Delphi XE2 incompatible types pointer and PAnsiChar
delphi, delphi-xe2
Solution
My Delphi knowledge might be a little rusty, but as far as I remember:
PChar is (kind of like, not exactly) a pointer to a string in itself, so this type is actually an array of 101 PChars (strings):
`Name = array[0..100] of PChar;`
I think you should change it to `array [0..100] of Char`, or why not declare `HName` as a `PAnsiChar` right from the start?
Problem
I am compiling my application in Delphi XE2.It was developed in delphi 7.. My code is as follows: ``` type Name = array[0..100] of PChar; PName = ^Name; var HEnt: pHostEnt; HName: PName; WSAData: TWSAData; i: Integer; begin Result := False; if WSAStartup($0101, WSAData) <> 0 then begin WSAErr := 'Winsock is not responding."'; Exit; end; IPaddr := ''; New(HName); if GetHostName(HName^, SizeOf(Name)) = 0 then <-----ERROR begin HostName := StrPas(HName^); HEnt := GetHostByName(HName^); " " so on... end; ``` When i try to compile the code ,i get the following error: When i try this code in another application it works fine in Delphi 7. How do i convert from character pointer to PAnsiChar type to make it run on Delphi XE2??.