Thema: Delphi WLan API Übersetztung ?

Einzelnen Beitrag anzeigen

Robert Marquardt
(Gast)

n/a Beiträge
 
#42

Re: WLan API Übersetztung ?

  Alt 10. Jan 2007, 10:41
Sieht schlimm aus.
Erst mal waere eine anstaendige Formatierung der Sourcen angebracht.

nduCType.pas ist voll von ueberfluessigen Typdeklarationen. void laesst sich nicht in Delphi ausdruecken. pvoid = Pointer.
Es waere angebracht die Schreibweise von C zu uebernehmen, also PVOID nicht pvoid.

Die enums einfach zu uebernehmen kann boese schiefgehen. Ein {$MINENUMSIZE 4} muss in die Sourcen, da C immer 4-Byte Enums macht.

Bei einer Konversion ist es besser die Namen komplett zu uebernehmen. Der ndu-Prefix sollte also rausfliegen.
Auch die Delphi-Art des Typen mit T-Prefix sollte nur als zzusaetzlicher Typ aufteten.

Ganz uebel ist die Veraenderung des Wertes von NDU_DOT11_SSID_MAX_LENGTH.
So ist es richtig:
Delphi-Quellcode:
const
  DOT11_SSID_MAX_LENGTH = 32; //32 Bytes

type
  DOT11_SSID = packed record
    uSSIDLength: ULONG;
    ucSSID: array [0..DOT11_SSID_MAX_LENGTH-1] of UCHAR;
  end;
Ob es packed record ist kann ich nicht sagen. Die C-Header deuten eher an das nicht, da ein #pragma dazu fehlt.
Ich wuerde hier eher auf 8-Byte-Grenzen wetten.

Es empfiehlt sich die jedi-apilib zu benutzen (http://jedi-apilib.sf.net). Damit sollte mna zumindest nduCType.pas und nduWinNT.pas loswerden koennen.
Unangenehm ist das das Windows DDK noch kaum konvertiert ist. Da wartet noch viel Arbeit auf uns.
  Mit Zitat antworten Zitat