const
  WSAID_ACCEPTEX:   TGUID   =   (D1:$b5367df1;D2:$cbac;D3:$11cf;D4:($95,$ca,$00,$80,$5f,$48,$a1,$92));WSAIoctl(ListenSock,SIO_GET_EXTENSION_FUNCTION_POINTER,@WSAID_ACCEPTEX,sizeof(TGUID),@@AcceptEx,
        sizeof(Pointer),nil,nil,nil);
  if rtn<>0 then
  begin
     rtn:=WSAGetLastError();
    showmessage(IntToStr(rtn));
  end;我用上面的代码为什么提取不除AcceptEx的地址,返回错误代码10014  十分不解 求高手帮忙

解决方案 »

  1.   

    const
      WSAID_ACCEPTEX  : TGUID = (D1:$b5367df1;  D2:$cbac; D3:$11cf; D4: ($95, $ca,  $00,  $80,  $5f,  $48,  $a1,  $92));type
      LPFN_ACCEPTEX = function(   sListenSocket         : TSocket
                                ; sAcceptSocket         : TSocket
                                ; lpOutputBuffer        : Pointer
                                ; dwReceiveDataLength   : DWORD
                                ; dwLocalAddressLength  : DWORD
                                ; dwRemoteAddressLength : DWORD
                                ; lpdwBytesReceived     : PDWORD
                                ; lpOverlapped          : POverlapped
                                ): BOOL; stdcall;
      TAcceptEx   = LPFN_ACCEPTEX;
    fnAcceptEx    : TAcceptEx;
    dwTmpValue:Pointer;
    dwTmpValue := WSAGetExtensionFunctionPointer(FSocketHandle,WSAID_ACCEPTEX);
    if  (Not Assigned(dwTmpValue) ) then fnAcceptEx := dwTmpValue;
      

  2.   

    if  ((*Not*) Assigned(dwTmpValue) ) then fnAcceptEx := dwTmpValue;