AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi WLan API Übersetztung ?
Thema durchsuchen
Ansicht
Themen-Optionen

WLan API Übersetztung ?

Ein Thema von nitschchedu · begonnen am 17. Okt 2006 · letzter Beitrag vom 3. Dez 2007
Antwort Antwort
Seite 3 von 8     123 45     Letzte »    
Benutzerbild von ste_ett
ste_ett

Registriert seit: 10. Sep 2004
Ort: Dülmen
464 Beiträge
 
Delphi 7 Professional
 
#21

Re: WLan API Übersetztung ?

  Alt 19. Okt 2006, 15:09
Die Definition für einige Typen fehlt.
z.B. "TnduDot11_SSID"


Du solltest packed records benutzen.

Delphi-Quellcode:
Txyz = packed record
  Name: Typ;
end;
Stefan
"Geht nicht!" ist keine Fehlerbeschreibung und "Hab ich schon versucht!" keine Antwort!

Hey, it compiles! Ship it!
  Mit Zitat antworten Zitat
nitschchedu

Registriert seit: 24. Mär 2006
300 Beiträge
 
Delphi 7 Professional
 
#22

Re: WLan API Übersetztung ?

  Alt 19. Okt 2006, 15:22
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:
#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;
So das waren eigentlich alle ! Ich hoffe du kannst mir Helfen.
  Mit Zitat antworten Zitat
Benutzerbild von Flocke
Flocke

Registriert seit: 9. Jun 2005
Ort: Unna
1.172 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#23

Re: WLan API Übersetztung ?

  Alt 19. Okt 2006, 15:27
Deine Arrays sind an etlichen Stellen ein Element zu groß. Die C-Deklaration
Code:
TYP x[5]
bedeutet in Delphi
x: array [0 .. 4] of TYP; Z.B. an den Stellen:
Delphi-Quellcode:
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;
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.
Volker
Besucht meine Garage
Aktuell: RtfLabel 1.3d, PrintToFile 1.4
  Mit Zitat antworten Zitat
nitschchedu

Registriert seit: 24. Mär 2006
300 Beiträge
 
Delphi 7 Professional
 
#24

Re: WLan API Übersetztung ?

  Alt 19. Okt 2006, 15:31
OK bei der MAC Adresse hate ich es vergessen aber die Anderen

Delphi-Quellcode:
NDU_DOT11_SSID_MAX_LENGTH
..
und so weiter
Habe ich schon immer eins abgezogen.
was meist du mit den Aufzählungstypen kannst da mal zeigen wie ich es richtig machen kann ?
  Mit Zitat antworten Zitat
Benutzerbild von ste_ett
ste_ett

Registriert seit: 10. Sep 2004
Ort: Dülmen
464 Beiträge
 
Delphi 7 Professional
 
#25

Re: WLan API Übersetztung ?

  Alt 20. Okt 2006, 07:33
Einfach oben in die Unit
{$MINENUMSIZE 4} schreiben.
Stefan
"Geht nicht!" ist keine Fehlerbeschreibung und "Hab ich schon versucht!" keine Antwort!

Hey, it compiles! Ship it!
  Mit Zitat antworten Zitat
nitschchedu

Registriert seit: 24. Mär 2006
300 Beiträge
 
Delphi 7 Professional
 
#26

Re: WLan API Übersetztung ?

  Alt 20. Okt 2006, 10:35
Mal jetzt Allgemein die Übersetztung damit ich euch nicht immer auf die Nerven gehe.
Delphi-Quellcode:
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 --> ??
Wenn ich das Alles Weiß Brauche ich erstmal nicht mehr so schnell Hilfe !
  Mit Zitat antworten Zitat
Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#27

Re: WLan API Übersetztung ?

  Alt 20. Okt 2006, 10:47
Zitat:
ULONG --> Cardinal
LONG --> Integer
UCHAR = unsigned char --> ka
SHORT --> ShortInt
0x0000000f --> $0000000F
unsigned int --> Cardinal
void * --> War das nicht Pointer ?
unsigned long long = ULONGLONG --> auch Longword ?^^
unsigned __int64 --> ne kein Int64 aber ka was o.O
char --> Char
char * --> PChar?^^
union { .. } --> Wie Übersetzt man den das ?

void --> ?? Auch ein Pointer?
unsigned char * --> ??
DWORD --> DWORD
WCHAR --> WideChar
BYTE --> Byte
USHORT = unsigned short --> Word
BOOL --> Bool
BOOLEAN --> Boolean
--> ?
#define WLAN_READ_ACCESS ( STANDARD_RIGHTS_READ | FILE_READ_DATA ) --> Wie Übersetzte ich das ?
PVOID --> PPointer?!
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 --> ??
Ehm hab mal paar Sachen zusammengefasst... Ich würde das jetzt etwa so übersetzen.. Kann das zwar selbst nicht wirklich aber so ausm Gefühl ... ka

Gruß
Neutral General
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."
  Mit Zitat antworten Zitat
pacman1986

Registriert seit: 11. Feb 2005
Ort: Kirchhain
498 Beiträge
 
Delphi 2005 Personal
 
#28

Re: WLan API Übersetztung ?

  Alt 20. Okt 2006, 10:53
void ist eigentlich für prozeduren gedacht (prozeduren nicht funktionen) wenn ich mich nicht irre
Christian N.
Designed to make a difference

najjaronline.de
  Mit Zitat antworten Zitat
nitschchedu

Registriert seit: 24. Mär 2006
300 Beiträge
 
Delphi 7 Professional
 
#29

Re: WLan API Übersetztung ?

  Alt 20. Okt 2006, 12:14
Soll ich da dann procedure davor schreiben oder wie ?
  Mit Zitat antworten Zitat
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.755 Beiträge
 
Delphi 10.4 Sydney
 
#30

Re: WLan API Übersetztung ?

  Alt 20. Okt 2006, 12:17
void kennzeichen Funktionen ohne Rückgabewert, sind als mehr oder weniger Prozeduren

Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 3 von 8     123 45     Letzte »    


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:29 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz