Delphi-PRAXiS
Seite 5 von 8   « Erste     345 67     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi WLan API Übersetztung ? (https://www.delphipraxis.net/79162-wlan-api-uebersetztung.html)

nitschchedu 9. Jan 2007 20:14

Re: WLan API Übersetztung ?
 
Ok Leute bin soweit Fertig jetzt lass ich nochmal Robert Marquardt drüber schauen dann gebe ich die Units hier frei Dokumentation und BSp Projekte zur anwendung kommen wenn ich mit meine Freunden unser Programmierer Wiki aufgebaut haben. ^^ Also warten wir mal ab was Robert Marquardt für so Fehler findet.

Robert Marquardt 10. Jan 2007 09:41

Re: WLan API Übersetztung ?
 
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.

nitschchedu 10. Jan 2007 10:07

Re: WLan API Übersetztung ?
 
Hey beim einrücken habe ich mir mühe gegeben was für ne Delphi version benutzt du ? Ich benutzte jetzt 2006.

Zitat:

Zitat von Robert Marquardt
Sieht schlimm aus.
Erst mal waere eine anstaendige Formatierung der Sourcen angebracht.

Das hört sich so an wie bei meinen Kollecken mit dem Zend hab ich die Datei ist alles schön eingrückt. Hat er die Datei ist alles aus dem zusammen hang.


Zitat:

Zitat von Robert Marquardt
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.

Wie mache ich das dann wenn void kommt ?

Zitat:

Zitat von Robert Marquardt

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

Dazu kann ich nur eins sagen man hatt mir das schon mal gesagt aber wieder mal nicht richtig erklärt.

Zitat:

Zitat von Robert Marquardt
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.

Ich werds ndu für mich behalten und für euch rausmachen ok ^^.

Zitat:

Zitat von Robert Marquardt
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.

Ich habe Packet record genohmen weil man das mir hier irgendwo gesagt hat natürlich wieder nicht richig erklärt. :?

Zitat:

Zitat von Robert Marquardt
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.

[/quote]

Ich werds ändern danke noch fürs drüber schauen wenn ich fertig bin würdest du es dir nochmal anschauen ?

Robert Marquardt 10. Jan 2007 10:54

Re: WLan API Übersetztung ?
 
Die Einrueckung wird durch Tabs versaut. Der erste Schritt einr Konversion sollte daher die Anwendung eines Detab-Tools sein.

Wenn void als Resultattyp einer Funktion kommt, so heisst das das es eine Prozedur ist. Kommt void als Parametertyp, so hat die Funktion keinen Parameter.
das bedeutet insgesamt das void nie als Typ konvertiert wird.

Das mit dem Packing ist schwierig. Frueher hat MS das immer klar in den Headern angegeben, aber die neueren APIs sind ueblicherweise ohne Angabe. Das bedeutet die Voreinstellung 8 des Visual Studio.

Ja, ich schau mir die Files dann nochmal an.

ste_ett 10. Jan 2007 11:01

Re: WLan API Übersetztung ?
 
edit

Sry, falscher Thread! :p

ste_ett 10. Jan 2007 11:02

Re: WLan API Übersetztung ?
 
hm, irgendwas passt hier gar nicht. :/

nitschchedu 10. Jan 2007 14:51

Re: WLan API Übersetztung ?
 
Habe mir die Jedi Units angeschaut was mich mal Interessiert sind die Schalter Befehle gibs da irgendwo ne Tut drüber ?
bsp:
Delphi-Quellcode:
{$WEAKPACKAGEUNIT}

Luckie 10. Jan 2007 15:28

Re: WLan API Übersetztung ?
 
Ja, in der Delphi Hilfe.

nitschchedu 14. Jan 2007 11:48

Re: WLan API Übersetztung ?
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hey Leute nun haben wirs, also noch mal ein großes Danke Robert Marquardt der meine Units Überarbeitet hat.
Er hat zugar die Kommentare rein gemacht --> das wollt ich eigentlich machen :wink: Naja dann werde ich woll irgendwann
mal noch Deutsche Kommentare rein setzten, mal sehen.
Das Bsp Programm kommt noch, aber erst wenn das Pro-Wiki von mir und meinen Kumpels steht.

Ihr braucht für die Benutztung noch die Jedi Units http://jedi-apilib.sf.net.
Und die DLL WlanAPi.dll die es bei Microsoft gibt http://www.microsoft.com/downloads/d...DisplayLang=de
.
Im anhang die Units.

PS. Robert Marquardt wollst mir nich noch sagen wo meine Fehler Lagen und worauf ich achten muss ?

CodeX 14. Jan 2007 12:16

Re: WLan API Übersetztung ?
 
Super! Besten Dank! :D

Eine kurze Frage: Beim Download der WlanAPi.dll von MS kann man dies für unterschiedliche Sprachen machen. Sollte man hier die Sprache des Betriebssystems (deutsch wegen Kompatibilität) wählen oder die des zu entwickelnden Programms (englisch wegen Fehlermeldungen)?


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:03 Uhr.
Seite 5 von 8   « Erste     345 67     Letzte »    

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