![]() |
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.
|
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:
Ob es packed record ist kann ich nicht sagen. Die C-Header deuten eher an das nicht, da ein #pragma dazu fehlt.
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; Ich wuerde hier eher auf 8-Byte-Grenzen wetten. Es empfiehlt sich die jedi-apilib zu benutzen ( ![]() Unangenehm ist das das Windows DDK noch kaum konvertiert ist. Da wartet noch viel Arbeit auf uns. |
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:
Zitat:
Zitat:
Zitat:
Zitat:
Ich werds ändern danke noch fürs drüber schauen wenn ich fertig bin würdest du es dir nochmal anschauen ? |
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. |
Re: WLan API Übersetztung ?
edit
Sry, falscher Thread! :p |
Re: WLan API Übersetztung ?
hm, irgendwas passt hier gar nicht. :/
|
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}
|
Re: WLan API Übersetztung ?
Ja, in der Delphi Hilfe.
|
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 ![]() Und die DLL WlanAPi.dll die es bei Microsoft gibt ![]() . Im anhang die Units. PS. Robert Marquardt wollst mir nich noch sagen wo meine Fehler Lagen und worauf ich achten muss ? |
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)? |
Re: WLan API Übersetztung ?
Viele Fehler waren es nicht.
Den Funktionstyp hast du nicht versucht zu konvertieren. "pointer to function" in C ist auch nicht so leicht zu verstehen fuer einen Delphi-Programmierer. Das mit dem {$MINENUMSIZE 4} hattest du auch etwas falsch verstanden. Das gilt von der ersten Anwendung bis zum Ende des Files. Ich habe sicherheitshalber in Konstanten und passende Typdeklaration umgewandelt. Das ist dann auch mit alten Delphi-Versionen kompatibel. An einer Stelle wurde BOOLEAN in Boolean konvertiert. Besser ist da ByteBool. An einer Stelle wurde faelschlich ein variant record benutzt. Die Kommentare habe ich nur teilweise eingesetzt. Generell gilt bei Jedi (genaugenommen sind das meine Regeln): Die Kommentare des Originals werden uebernommen. Nichts ist besser als das Original. Uebersetzungen koennen nur Fehler bringen. Die Spaltenformatierung bei Konstanten sollte erhalten werden. Bei Records gilt die Jedi-Formatierung nicht Spaltenformatierung. Alle Namen sollten unveraendert uebernommen werden. Das gilt insbesondere auch fuer die Gross/Kleinschreibung. Ausnahme bei Kollision mit reservierten Worten. Delphisierte Namen koennen zusaetzlich verwendet werden. Unbedingt die Tabulatoren durch Leerzeichen ersetzen. Es gibt noch viele weitere Regeln. Am besten Jedi-Apilib Files lesen. |
Re: WLan API Übersetztung ?
Zitat:
Nochmal Danke Robert Marquardt ! ^^ |
Re: WLan API Übersetztung ?
Hello
Sorry for English, but my German is very-very bad. First of all I wish to thank all people, who took part in translation WLan headers to Delphi, it's great work, I could not find even partial translation anywhere else. But when I has tried to use these headings, I have found, what not all works correctly. I have problems with getting of the status of wireless connections and when I looked headers, I have found, what not all identically with MSDN. In MSDN WLAN_AVAILABLE_NETWORK structure is described so:
Delphi-Quellcode:
But in headers it looks differently:
typedef struct _WLAN_AVAILABLE_NETWORK {
WCHAR strProfileName[256]; DOT11_SSID dot11Ssid; DOT11_BSS_TYPE dot11BssType; ULONG uNumberOfBssids; BOOL bNetworkConnectable; WLAN_REASON_CODE wlanNotConnectableReason; ULONG uNumberOfPhyTypes; DOT11_PHY_TYPE dot11PhyTypes[WLAN_MAX_PHY_TYPE_NUMBER]; BOOL bMorePhyTypes; WLAN_SIGNAL_QUALITY wlanSignalQuality; BOOL bSecurityEnabled; DOT11_AUTH_ALGORITHM dot11DefaultAuthAlgorithm; DOT11_CIPHER_ALGORITHM dot11DefaultCipherAlgorithm; DWORD dwFlags; DWORD dwReserved; } WLAN_AVAILABLE_NETWORK,
Delphi-Quellcode:
Differs even quantity of parametres, therefore I receive wrong values in many fields, for example in wlanSignalQuality and bSecurityEnabled.
WLAN_AVAILABLE_NETWORK = record
strProfileName: array [0..WLAN_MAX_NAME_LENGTH - 1] of WCHAR; dot11Ssid: DOT11_SSID; dot11BssType: DOT11_BSS_TYPE; uNumberOfBssids: ULONG; bNetworkConnectable: BOOL; wlanNotConnectableReason: WLAN_REASON_CODE; uDot11PhyType: ULONG; wlanSignalQuality: WLAN_SIGNAL_QUALITY; dot11RateSet: DOT11_RATE_SET; bSecurityEnabled: BOOL; dot11DefaultAuthAlgorithm: DOT11_AUTH_ALGORITHM; dot11DefaultCipherAlgorithm: DOT11_CIPHER_ALGORITHM; dwFlags: DWORD; dwReserved: DWORD; end; I tried to correct headers itself, but have failed. Maybe someone already have a corrected variant of headers or maybe I can download somewhere wlanapi.dll, which works correctly with current headers? Thanks in advance, Max. |
Re: WLan API Übersetztung ?
You are right. I will amend it ^^.
|
Re: WLan API Übersetztung ?
Zitat:
|
Re: WLan API Übersetztung ?
Hallo leute,
es hatt sich ein Problem aufgetan ... wie schon angesprochen hat sich was in den Header geändert. So also ich das nun beheben wollte, musste ich mit drinn feststellen das ich nicht die Aktuellen Header Dateien habe (ich weiß nicht was WLAN_MAX_PHY_TYPE_NUMBER für ne größe hat). Ich würde doch bitten das mir mal jemandt die Aktuellen Header (C++) Dateien Postet, ich schau mal weiter ich noch was finde. |
Re: WLan API Übersetztung ?
Zitat:
|
Re: WLan API Übersetztung ?
Na, geht's voran? :)
|
Re: WLan API Übersetztung ?
Wie meinst du das :-D ?
|
Re: WLan API Übersetztung ?
Zitat:
|
Re: WLan API Übersetztung ?
Ach du meinst wann ich das Tut weiter schreibe :wink: ... weiß ich noch nicht :gruebel: ... ich habe dafür gerade keine Zeit.
|
Re: WLan API Übersetztung ?
Ja, das Tutorial und vor allem die Anpassung der neuen Header. Oder ist das schon getan?
Auf Deiner WikiSeite kann man die Header übrigens momentan nicht herunterladen. Zumindest wird bei mir nur "[|Header(Units)]" angezeigt, statt eines Downloadlinks, den ich dort vermuten würde. Nichtsdestotrotz, ich freue mich über Deine Arbeit an dieser Geschichte. Danke! |
Re: WLan API Übersetztung ?
Wegen download schau ich noch nach .. so das er dann geht ;-) . Die Header hatte ich dieses Jahr schon angepasst (im Sommer).
Oder gibt es schon wieder ne Neue Version ? Wer ehr dazu kommt das ganze weiter zu Dokumentieren als ich möge dieses bitte in das Wiki schreiben (Einfach Account anlegen und los :-) ) PS. Ich kontrolliere das auch ... also kein mist machen in Wiki .. alles klar ;-) Edit: WTF die Header sind weg :-( .... ich lade sie neu hoch. Edit: Ach ja nicht wundern wenn ihr die Variabeln nicht findet in der Header Version haben alle Constanten und Variabeln das Prefix "ndu" oder "Tndu" oder "NDU" die andere konnte ich auf die schnelle nicht finden. |
Re: WLan API Übersetztung ?
Liste der Anhänge anzeigen (Anzahl: 2)
So hier mal nach langer Zeit ein kleines Beispiel. :???:
Siehe Anhang. |
Re: WLan API Übersetztung ?
Zitat:
ich bin neu hier aber auch ein wenig am Thema WLAN dran mit Delphi. Ich habe deine Übersetzung der WLAN-API und versuche da selber was auf die Beine zu stellen. Nur aus Hobby. Ich programmiere eigentlich VB 6.0, aber soviel API mit VB ist zu stressig. Da nehme ich lieber Delphi. Funktioniert dein Beispiel? Ich kann mir zwar die Adapter anzeigen lassen, aber beim Button WLANSCAN erhalte ich nur eine Sanduhr. Was bedeutet Button1? Da erhalte ich auch nur eine Sanduhr? Danach muss ich das Programm rauswerfen. Evtl. ist das Wlan auf meinem Notebook nicht korrekt installiert. Mit IBM Access Connections klappt bei Wlan-Verbindungen (im BS) offenbar alles, aber nur mit der Windows-Einrichtung habe ich da einige Probleme. Insbesondere wird in Delphi die Callback-Procedure nicht aufgerufen. Ich will demnächst zu einem anderen Notebook wechseln. Sag mal deine Erfahrungen, evtl. können wir uns etwas mehr austauschen. Tschüß jogging_cat |
Re: WLan API Übersetztung ?
Hi,
ist diese dll nicht bei Windows XP MCE 2005 mit dabei? Wollte es grad mal versuchen bei mir! |
Re: WLan API Übersetztung ?
Für die WlanApi mit XP SP brauchst du 2 Pakete von Microsoft:
- MSXML6 - und das Paket WlanAPI ![]() |
Re: WLan API Übersetztung ?
Hi,
fuer das XML 6 bekomme ich: Zitat:
|
Re: WLan API Übersetztung ?
Nun solte es gehen.
|
Re: WLan API Übersetztung ?
Jo die Sanduhr ... das bedeutet du bist mit dem Wlan schon verbunden ! Das ist ein Bug meinerseits den ich auch schon mitbekommen habe :-D . Ich muss noch einbauen das wenn man schon verbunden ist nicht Scannen kann !
.... Und Button1 ist noch aus meinen Test der davor statt fand ... ich muss den noch Löschen (Ignoriere den einfach mal). PS: Unter Open Source kannst auch den Quell Code sehen ;-) |
Re: WLan API Übersetztung ?
Zitat:
|
Re: WLan API Übersetztung ?
:wiejetzt:
......... Kannst mir die mal alle Posten und was genau du gemacht hast ?! :-D (ich versuche sie zubeheben) |
Re: WLan API Übersetztung ?
Na die oben erwähnten!
|
Re: WLan API Übersetztung ?
Also:
1. Sicher stellen das die WLanAPI.DLL da ist liegt im "C:\WINDOWS\system32" dann noch schauen ob XML 6 installiert ist (aber ich glaube da ich das noch nicht benutze von der API aus geht es auch ohne). 2. Microsoft Client Verwenden (das bedeutet das Windows die Kontrolle über das WLan hat) 3. Nicht Verbunden sein, da sonst nicht im Bsp Gescannt werden kann. 4. Programm Starten und Wlan Geräte anzeigen 5. Gerät auswählen (Makieren in der Liste) und dann Scannen So wenn du immer noch ein Fehler hast sag mir an welchen Punkt das ist :o Wer noch am Projekt mitmachen will, soll es ruhig sagen :hello: (je mehr Leute um so besser wird das Projekt) |
Re: WLan API Übersetztung ?
Zitat:
Wo ist denn Open Source? Grüße jogging_cat |
Alle Zeitangaben in WEZ +1. Es ist jetzt 21: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