![]() |
IP_ADAPTER_ADDRESSES Übersetzung nach Delphi
Hallo zusammen,
ich würde gerne die Struktur von ![]()
Delphi-Quellcode:
type
PIP_ADAPTER_ADDRESSES = ^IP_ADAPTER_ADDRESSES; IP_ADAPTER_ADDRESSES = record Union: record case Integer of 0: (Alignment: LongInt); 1: (Length: LongInt; IfIndex: DWORD); end; Next : PIP_ADAPTER_ADDRESSES; AdapterName : PCHAR; DnsSuffix : PWCHAR; Description : PWCHAR; FriendlyName : PWCHAR; PhysicalAddress : array [0..MAX_ADAPTER_ADDRESS_LENGTH - 1] of BYTE; PhysicalAddressLength : DWORD; Flags : DWORD; Mtu : DWORD; IfType : DWORD; Ipv6IfIndex : DWORD; ZoneIndices : array [0..15] of DWORD; TransmitLinkSpeed : Int64; ReceiveLinkSpeed : Int64; Ipv4Metric : LongInt; Ipv6Metric : LongInt; end; PVOID = Pointer; function GetAdaptersAddresses(Family: ULONG; Flags: DWORD; Reserved: PVOID; pAdapterAddresses: PIP_ADAPTER_ADDRESSES; pOutBufLen: PULONG): DWORD; stdcall; external 'IPHLPAPI.DLL' name 'GetAdaptersAddresses';
Delphi-Quellcode:
Habe ich da wieder irgendwas durcheinander gebracht oder liegt es an meinem Aufruf ?
var
adapter:pip_adapter_addresses; buffer:dword; Error:dword; begin error := GetAdaptersAddresses(0, 0, nil, nil, @buffer); if error <> ERROR_BUFFER_OVERFLOW then ShowMessage('Not enough memory'); adapter := AllocMem(buffer); error := GetAdaptersAddresses(0, 0, nil, adapter, @buffer); if error = ERROR_SUCCESS then begin case adapter.IfType of IF_TYPE_ETHERNET_CSMACD : Label13.Caption := 'Adapter Type : Ethernet'; IF_TYPE_SOFTWARE_LOOPBACK : Label13.Caption := 'Adapter Type : Loopback'; IF_TYPE_TUNNEL : Label13.Caption := 'Adapter Type : Tunnel'; IF_TYPE_IEEE1394 : Label13.Caption := 'Adapter Type : FireWire 1394'; end; Label14.Caption := 'Name : ' + WideCharToString(adapter.FriendlyName); Label15.Caption := 'Transmit Link Speed : ' + IntToStr(adapter.TransmitLinkSpeed); Label16.Caption := 'Recieve Link Speed : ' + IntToStr(adapter.ReceiveLinkSpeed); end else ShowMessage( SysErrorMessage( Error ) ); FreeMem(adapter, buffer); end; |
Re: IP_ADAPTER_ADDRESSES Übersetzung nach Delphi
irgendwie vermisse ich bei deiner Übersetzung die Felder
Code:
womit sich dann alle weiteren Felder um 16 Byte (auf 32-Bit-Maschinen) verschieben...
PIP_ADAPTER_UNICAST_ADDRESS FirstUnicastAddress;
PIP_ADAPTER_ANYCAST_ADDRESS FirstAnycastAddress; PIP_ADAPTER_MULTICAST_ADDRESS FirstMulticastAddress; PIP_ADAPTER_DNS_SERVER_ADDRESS FirstDnsServerAddress; Zur not können die Typen der obigen Felder mit Pointer übersetzt werden... |
Re: IP_ADAPTER_ADDRESSES Übersetzung nach Delphi
Zitat:
Edit: Ich habe mir jetzt vorgenommen, alles zu übersetzen, dass ich solchen Fehlern aus dem Weg gehe. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:00 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz