WSAStartup为什么不传指针?(50分)

Z

zhjwjan

Unregistered / Unconfirmed
GUEST, unregistred user!
我看了WSAStartup函数的说明:
int WSAStartup (
WORD wVersionRequested,
LPWSADATA lpWSAData
);
第二个参数要求是一个指向WSAData结构的指针,但我看delphi在scktcomp单元里却是直接传
结构变量,但是也正确。而我自己传指针却报参数类型错误,请问这是怎么回事?
 
delphi 中 该函数的参数 是 word 和 WSAData 类型,所以应该传record 变量
 
delphi 中第二个参数定义的类型是下面的类型:
TWSAData = WSAData;
PTransmitFileBuffers = ^TTransmitFileBuffers;
_TRANSMIT_FILE_BUFFERS = record
Head: Pointer;
HeadLength: DWORD;
Tail: Pointer;
TailLength: DWORD;
end;
重定义了,看看不就知道了。当然是结构。
var
WSAData1: TWSAData;
erresult:integer;
erresult:=WSAStartUp($101,TempWSAData);
 
我太粗心,没看到delphi 自己的定义:
function WSAStartup(wVersionRequired: word; var WSData: TWSAData): Integer; stdcall;
 
顶部