在初试化运行的过程中,为什么系统总提示“list index out of bounds(0)”的错误
源程序如下:
unit SocketInitialize;interface
uses
Windows,Messages,SysUtils,Classes,Graphics,Controls,Forms,Dialogs,winsock,StdCtrls,ComCtrls;
type
TSocketInitialize = class
privatepublic
Function SocketInitialize:integer;
Function SocketCleanup:integer;
end;
Const
Version:WORD = $0101;//socket version requested :1.1
var
WSData:TWSAdata;
implementation
{ TSocketInitialize }
function TSocketInitialize.SocketCleanup: integer;
var
iReturn:integer;
begin
iReturn:=WSACleanup();
end;function TSocketInitialize.SocketInitialize: integer;
var
iReturn:integer;
MajorVersion:WORD;
MinorVersion:WORD;
begin
MajorVersion:=hi(Version);
MinorVersion:=lo(Version);
iReturn:=WSAStartup(Version,WSData);
if iReturn <> ERROR_SUCCESS then
begin
ShowMESSAGE('Windows Socket is not responed.');
result:=iReturn;
exit;
end;
if(lo(WSData.wVersion) < MajorVersion) or
((lo(WSData.wVersion) = MajorVersion) and
(hi(WSData.wVersion) < MinorVersion)) then
begin
ShowMessage('Sockets version is not supported by Windows Sockets.');
result:=-1;
exit;
end;
result:=iReturn;
end;
end.
源程序如下:
unit SocketInitialize;interface
uses
Windows,Messages,SysUtils,Classes,Graphics,Controls,Forms,Dialogs,winsock,StdCtrls,ComCtrls;
type
TSocketInitialize = class
privatepublic
Function SocketInitialize:integer;
Function SocketCleanup:integer;
end;
Const
Version:WORD = $0101;//socket version requested :1.1
var
WSData:TWSAdata;
implementation
{ TSocketInitialize }
function TSocketInitialize.SocketCleanup: integer;
var
iReturn:integer;
begin
iReturn:=WSACleanup();
end;function TSocketInitialize.SocketInitialize: integer;
var
iReturn:integer;
MajorVersion:WORD;
MinorVersion:WORD;
begin
MajorVersion:=hi(Version);
MinorVersion:=lo(Version);
iReturn:=WSAStartup(Version,WSData);
if iReturn <> ERROR_SUCCESS then
begin
ShowMESSAGE('Windows Socket is not responed.');
result:=iReturn;
exit;
end;
if(lo(WSData.wVersion) < MajorVersion) or
((lo(WSData.wVersion) = MajorVersion) and
(hi(WSData.wVersion) < MinorVersion)) then
begin
ShowMessage('Sockets version is not supported by Windows Sockets.');
result:=-1;
exit;
end;
result:=iReturn;
end;
end.
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货