Delphi 7で以下の関数を作成しました。 UDP_TABLE_OWNER_PID = 5;Delphi 7でGetExtendedUdpTableが機能しない
{For UDP}
UDP_TABLE_OWNER_PID = 5;
type
UDP_TABLE_CLASS = Integer;
PMibUdpRowOwnerPid = ^TMibUdpRowOwnerPid;
TMibUdpRowOwnerPid = record//packed record
dwState : DWORD;
dwLocalAddr : DWORD;
//dwLocalPort : DWORD;
dwRemoteAddr: DWORD;
// dwRemotePort: DWORD;
dwOwningPid : DWORD;
end;
PMIB_UDPTABLE_OWNER_PID = ^MIB_UDPTABLE_OWNER_PID;
MIB_UDPTABLE_OWNER_PID =record// packed record
dwNumEntries: DWord;
table: array [0..ANY_SIZE - 1] OF TMibUdpRowOwnerPid;
end;
procedure TFmainViewTCP.ShowCurrentUDPConnections(StatusType:String);
var
Error : DWORD;
TableSize : DWORD;
i : integer;
IpAddress : in_addr;
RemoteIp : string;
LocalIp : string;
ver:Integer;
ProcName:string;
FExtendedUdpTable : PMIB_UDPTABLE_OWNER_PID;
lItem:TListItem; {for displaying the output}
countRow:Integer;
begin
i:=0;
TableSize := 0;
countRow:=0;
Error := GetExtendedUdpTable(nil, @TableSize, False,AF_INET,UDP_TABLE_OWNER_PID, 0);
if Error <> ERROR_INSUFFICIENT_BUFFER then
begin
if Error=ERROR_INVALID_PARAMETER then
begin
ShowMessage(IntToStr(Error));//Error code is 87, shown here
end;
Exit;
end;
コードにエラーがありますが、わかりません。ヘルプは高く評価されます。事前に
おかげで
コードはそのようにインデントされていますか?もしそうなら、それはあなたの問題の大きな部分です。そうでない場合は、質問の字下げが正しいことを確認する時間を費やしてください。 –
ボイラープレートのdwStateフィールドをコメントアウトしています。 –
インデントは本当に私の心配ではありません。助けてください。 – CyprUS