gpt4 book ai didi

Delphi XE2 不兼容类型指针和 PAnsiChar

转载 作者:行者123 更新时间:2023-12-03 18:01:59 24 4
gpt4 key购买 nike

我正在 Delphi XE2 中编译我的应用程序。它是在 delphi 7 中开发的。我的代码如下:

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;

当我尝试编译代码时,出现以下错误: enter image description here

当我在另一个应用程序中尝试此代码时,它在 Delphi 7 中运行良好。我如何将字符指针转换为 PAnsiChar 类型以使其在 Delphi XE2 上运行??。

最佳答案

我的 Delphi 知识可能有点生疏,但据我所知:

PChar 本身(有点像,不完全是)一个指向字符串的指针,所以这个类型实际上是一个包含 101 个 PChars(字符串)的数组:

Name = array[0..100] of PChar;

我认为你应该把它改成 array [0..100] of Char,或者为什么不把 HName 声明为 PAnsiChar 对吧从一开始?

关于Delphi XE2 不兼容类型指针和 PAnsiChar,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10912796/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com