delphi2010下 gethostbyname的返回值始终是空,怎么解决?
源码如下 procedure TForm1.FormCreate(Sender: TObject); var WData:TWSAData; HEnt:PHostEnt; url:string; begin WSAStartup(2,WData);//初始化 url:='www.zhaoxi.net' ; HEnt:=GetHostByName(Pansichar(url)); WSACleanup; end;
源码如下 procedure TForm1.FormCreate(Sender: TObject); var WData:TWSAData; HEnt:PHostEnt; url:string; begin WSAStartup(2,WData);//初始化 url:='www.zhaoxi.net' ; HEnt:=GetHostByName(Pansichar(url)); WSACleanup; end;
答案:delphi 2010中的string默认是widestring,直接使用PAnsiChar转换会有问题的,你可以把url定义为AnsiString而不是string。