![]() |
Re: WLan API Übersetztung ?
Die Definition für einige Typen fehlt.
z.B. "TnduDot11_SSID" Du solltest packed records benutzen.
Delphi-Quellcode:
Txyz = packed record
Name: Typ; end; |
Re: WLan API Übersetztung ?
Hier mal alle Typen
Delphi-Quellcode:
PnduDot11_SSID = ^TnduDot11_SSID; TnduDot11_SSID = record uSSIDLength: ULONG; ucSSID: array [0..NDU_DOT11_SSID_MAX_LENGTH] of UCHAR; end; TnduDot11_Mac_Address = record ucDot11MacAddress: array [0..6] of UCHAR; end; TnduDot11BssType = (dot11_BSS_type_infrastructure = 1, dot11_BSS_type_independent = 2, dot11_BSS_type_any = 3); TnduDot11PhyType = (dot11_phy_type_unknown = 0, dot11_phy_type_any = dot11_phy_type_unknown, dot11_phy_type_fhss = 1, dot11_phy_type_dsss = 2, dot11_phy_type_irbaseband = 3, dot11_phy_type_ofdm = 4, dot11_phy_type_hrdsss = 5, dot11_phy_type_erp = 6, dot11_phy_type_IHV_start = $80000000, dot11_phy_type_IHV_end = $ffffffff); TnduWLanRateSet = record uRateSetLength: ULONG; usRateSet: array [0..NDU_DOT11_RATE_SET_MAX_LENGTH] of SHORT; end; TnduWLanBSSEntry = record dot11Ssid: TnduDot11_SSID; uPhyId: ULONG; dot11Bssid: TnduDot11_Mac_Address; dot11BssType: TnduDot11BssType; dot11BssPhyType: TnduDot11PhyType; lRssi: Longint; uLinkQuality: ULONG; bInRegDomain: Boolean; usBeaconPeriod: SHORT; ullTimestamp: LONGLONG; ullHostTimestamp: LONGLONG; usCapabilityInformation: SHORT; ulChCenterFrequency: ULONG; wlanRateSet: TnduWLanRateSet; ulIeOffset: ULONG; ulIeSize: ULONG; end; PnduWLanBSSList = ^TnduWLanBSSList; TnduWLanBSSList = record dwTotalSize: DWORD; dwNumberOfItems: DWORD; wlanBssEntries: TnduWLanBSSEntry; end;
Code:
So das waren eigentlich alle ! Ich hoffe du kannst mir Helfen.
#define DOT11_SSID_MAX_LENGTH 32 // 32 bytes
typedef struct _DOT11_SSID { #ifndef __midl __range(0,32) #endif ULONG uSSIDLength; UCHAR ucSSID[DOT11_SSID_MAX_LENGTH]; } DOT11_SSID, * PDOT11_SSID; // These are needed for wlanapi.h for pre-longhorn targets #ifdef __midl typedef struct _DOT11_MAC_ADDRESS { UCHAR ucDot11MacAddress[6]; } DOT11_MAC_ADDRESS, * PDOT11_MAC_ADDRESS; #else typedef UCHAR DOT11_MAC_ADDRESS[6]; typedef DOT11_MAC_ADDRESS * PDOT11_MAC_ADDRESS; #endif #ifdef __midl // use 4-byte enum typedef [v1_enum] enum _DOT11_PHY_TYPE { #else typedef enum _DOT11_PHY_TYPE { #endif dot11_phy_type_unknown = 0, dot11_phy_type_any = dot11_phy_type_unknown, dot11_phy_type_fhss = 1, dot11_phy_type_dsss = 2, dot11_phy_type_irbaseband = 3, dot11_phy_type_ofdm = 4, dot11_phy_type_hrdsss = 5, dot11_phy_type_erp = 6, dot11_phy_type_IHV_start = 0x80000000, dot11_phy_type_IHV_end = 0xffffffff } DOT11_PHY_TYPE, * PDOT11_PHY_TYPE; #define DOT11_RATE_SET_MAX_LENGTH 126 // 126 bytes typedef struct _DOT11_RATE_SET { ULONG uRateSetLength; __field_ecount_part(DOT11_RATE_SET_MAX_LENGTH, uRateSetLength) UCHAR ucRateSet[DOT11_RATE_SET_MAX_LENGTH]; } DOT11_RATE_SET, * PDOT11_RATE_SET; typedef struct _WLAN_BSS_ENTRY { DOT11_SSID dot11Ssid; ULONG uPhyId; DOT11_MAC_ADDRESS dot11Bssid; DOT11_BSS_TYPE dot11BssType; DOT11_PHY_TYPE dot11BssPhyType; LONG lRssi; ULONG uLinkQuality; BOOLEAN bInRegDomain; USHORT usBeaconPeriod; ULONGLONG ullTimestamp; ULONGLONG ullHostTimestamp; USHORT usCapabilityInformation; ULONG ulChCenterFrequency; WLAN_RATE_SET wlanRateSet; // the beginning of the IE blob // the offset is w.r.t. the beginning of the entry ULONG ulIeOffset; // size of the IE blob ULONG ulIeSize; } WLAN_BSS_ENTRY, * PWLAN_BSS_ENTRY; // struct WLAN_VARIABLE_SIZE_ARRAY defines a list of entries, // each of which may have different size typedef struct _WLAN_BSS_LIST { // The total size of the data in BYTE DWORD dwTotalSize; DWORD dwNumberOfItems; WLAN_BSS_ENTRY wlanBssEntries[1]; } WLAN_BSS_LIST, *PWLAN_BSS_LIST; |
Re: WLan API Übersetztung ?
Deine Arrays sind an etlichen Stellen ein Element zu groß. Die C-Deklaration
Code:
bedeutet in Delphi
TYP x[5]
Delphi-Quellcode:
Z.B. an den Stellen:
x: array [0 .. 4] of TYP;
Delphi-Quellcode:
Auch mit den Aufzählungstypen könntest du Probleme bekommen - die sind in C nämlich immer 4 Byte groß und in Delphi nicht. Dafür müsstest du dann "{$MINENUMSIZE 4}" hinzufügen.
ucSSID: array [0..NDU_DOT11_SSID_MAX_LENGTH] of UCHAR;
ucDot11MacAddress: array [0..6] of UCHAR; usRateSet: array [0..NDU_DOT11_RATE_SET_MAX_LENGTH] of SHORT; |
Re: WLan API Übersetztung ?
OK bei der MAC Adresse hate ich es vergessen aber die Anderen
Delphi-Quellcode:
Habe ich schon immer eins abgezogen.
NDU_DOT11_SSID_MAX_LENGTH
.. und so weiter was meist du mit den Aufzählungstypen kannst da mal zeigen wie ich es richtig machen kann ? |
Re: WLan API Übersetztung ?
Einfach oben in die Unit
Delphi-Quellcode:
schreiben.
{$MINENUMSIZE 4}
|
Re: WLan API Übersetztung ?
Mal jetzt Allgemein die Übersetztung damit ich euch nicht immer auf die Nerven gehe. :wink:
Delphi-Quellcode:
Wenn ich das Alles Weiß Brauche ich erstmal nicht mehr so schnell Hilfe ! :bounce1:
ULONG --> ??
LONG --> Vieleicht LongInt ? UCHAR --> ?? SHORT --> ?? 0x0000000f --> Vieleicht $0000000f ? unsigned int --> ?? void * --> War das nicht Pointer ? unsigned long long --> ?? unsigned __int64 --> Vieleicht Int64 ? char --> Char char * --> PChar unsigned char --> ?? union { .. } --> Wie Übersetzt man den das ? unsigned short --> ?? void --> ?? Auch ein Pointer? unsigned char * --> ?? DWORD --> DWORD WCHAR --> ?? BYTE --> Byte ULONG --> ?? USHORT --> ?? BOOL --> Bool BOOLEAN --> Boolean ULONGLONG --> ?? #define WLAN_READ_ACCESS ( STANDARD_RIGHTS_READ | FILE_READ_DATA ) --> Wie Übersetzte ich das ? PVOID --> ?? HANDLE --> THandle LPCWSTR --> ?? PBYTE * --> Pointer auf Pointer Byte ?? __deref_out_bcount() --> Habe keine Ahnung was das ist ?? __in --> Bestimmt var ? __out --> Bestimmt out ? __reserved --> ?? __in_opt --> ?? __deref_out --> ?? |
Re: WLan API Übersetztung ?
Zitat:
Gruß Neutral General |
Re: WLan API Übersetztung ?
void ist eigentlich für prozeduren gedacht (prozeduren nicht funktionen) wenn ich mich nicht irre
|
Re: WLan API Übersetztung ?
Soll ich da dann procedure davor schreiben oder wie ?
|
Re: WLan API Übersetztung ?
void kennzeichen Funktionen ohne Rückgabewert, sind als mehr oder weniger Prozeduren
Grüße Klaus |
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:45 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