本文转自:http://apps.hi.baidu.com/share/detail/34012983
这是在D7下的代码完全正常:
var tem:DWORD;
begin
tem:= htonl(ntohl(inet_addr(Pchar(edtPing1.Text))));
ShowMessage(IntToStr(htonl(ntohl(inet_addr(Pchar(edtPing1.Text))))));
ShowMessage(inet_ntoa(in_addr(tem)));
end;
这是在2010下的测试,得到的结果却不一样,edt1.text值为IP地址
var tem:DWORD;
begin
tem:= htonl(ntohl(inet_addr(PAnsiChar(edt1.Text))));
ShowMessage(IntToStr(htonl(ntohl(inet_addr(PAnsiChar(edt1.Text))))));
ShowMessage(inet_ntoa(in_addr(tem)));
end;
所有的原生字符串类型String转PAnsiChar都需要经过AnsiString过渡
tem:= htonl(ntohl(inet_addr(PAnsiChar(AnsiString(edt1.Text)))));