nhtol和htonl的转换问题(100分)

  • 主题发起人 主题发起人 lixiaohui
  • 开始时间 开始时间
L

lixiaohui

Unregistered / Unconfirmed
GUEST, unregistred user!
var
a,b,c:longword;
begin
a:=3031114548;
showmessage(inttostr(ntohl(a)));
b:=874752948;
showmessage(inttostr(htonl(b)));
为什么3031114548经过ntohl后转换成了874752948,但是874752948经过htonl后却不能转换成3031114548?请赐教,谢谢
 
Winsock.pas定义有错误.这个我以前论坛有说过的了.请自行修改Winsock.pas

type
u_long = LongWord;//原来为Longint
或者干脆自己定义
function ntohl2(netlong: DWORD): DWORD; stdcall; external 'ws2_32.dll' name 'ntohl';

function htonl2(hostlong: DWORD): DWORD; stdcall; external 'ws2_32.dll' name 'htonl';

我几年前搞TCP裸数据排序就遇到过这问题.很吐血.
 
高手,学习学习!
 
function ntohl2(netlong: DWORD): DWORD; stdcall; external 'ws2_32.dll' name 'ntohl';

function htonl2(hostlong: DWORD): DWORD; stdcall; external 'ws2_32.dll' name 'htonl';
重新定义是可以的,
type
u_long = LongWord;//原来为Longint
我试了试不行啊
 

Similar threads

S
回复
0
查看
896
SUNSTONE的Delphi笔记
S
S
回复
0
查看
873
SUNSTONE的Delphi笔记
S
D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
1K
DelphiTeacher的专栏
D
后退
顶部