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 1 von 8  1 23     Letzte »    
nitschchedu

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

WLan API Übersetztung ?

  Alt 17. Okt 2006, 13:55
Wie Übersetzte ich den das ins Delphi ? Will nehmlich eine Unit schreiben.



Delphi-Quellcode:
#define WLAN_API_VERSION_MAJOR(_v) ((_v) & 0xffff)
#define WLAN_API_VERSION_MINOR(_v) (((DWORD)(_v)) >> 16)
#define WLAN_API_MAKE_VERSION(_major, _minor) (((DWORD)(_minor)) << 16 | (_major))
  Mit Zitat antworten Zitat
Benutzerbild von chaosben
chaosben

Registriert seit: 27. Apr 2005
Ort: Görlitz
1.358 Beiträge
 
Delphi XE2 Professional
 
#2

Re: WLan API Übersetztung ?

  Alt 17. Okt 2006, 14:13
Ich vermute mal, so:

Delphi-Quellcode:
function WLAN_API_VERSION_MAJOR(AVersion : LongWord) : Word;
begin
  Result:=AVersion and $FFFF;
end;

function WLAN_API_VERSION_MINOR(AVersion : LongWord) : Word;
begin
  Result:=AVersion shr 16;
end;

function WLAN_API_MAKE_VERSION(AMajor, AMinor : Word) : LongWord;
begin
  Result:=(LongWord(AMinor) shl 16) or AMajor;
end;
Benjamin Schwarze
If I have seen further it is by standing on the shoulders of Giants. (Isaac Newton)
  Mit Zitat antworten Zitat
nitschchedu

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

Re: WLan API Übersetztung ?

  Alt 17. Okt 2006, 14:17
könnte klaben danke
  Mit Zitat antworten Zitat
nitschchedu

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

Re: WLan API Übersetztung ?

  Alt 18. Okt 2006, 07:20
Habe da mal noch ne Frage , Habe ich das richtig übersetzt ?

Delphi-Quellcode:
 function WlanOpenHandle(dwClientVersion: DWORD;
    pReserved: PBOOL; pdwNegotiatedVersion: DWORD;
    phClientHandle: PHandle): DWORD; stdcall; external 'wlanapi.dll';
|
|
|
v
Delphi-Quellcode:

// public APIs
DWORD WINAPI
WlanOpenHandle(
    __in DWORD dwClientVersion,
    __reserved PVOID pReserved,
    __out PDWORD pdwNegotiatedVersion,
    __out PHANDLE phClientHandle
);

Und das habe ich mal so übersetzt ich hoffe das stimmt.

Delphi-Quellcode:
TnduWLanInterFaceState = (wlan_interface_state_not_ready = 0,
    wlan_interface_state_connected,
    wlan_interface_state_ad_hoc_network_formed,
    wlan_interface_state_disconnecting,
    wlan_interface_state_disconnected,
    wlan_interface_state_associating,
    wlan_interface_state_discovering,
    wlan_interface_state_authenticating);
|
|
|
v
Delphi-Quellcode:

// the states of the network (interface)
#ifdef __midl
// use the 4-byte enum
typedef [v1_enum] enum _WLAN_INTERFACE_STATE {
#else
typedef enum _WLAN_INTERFACE_STATE {
#endif
    wlan_interface_state_not_ready = 0,
    wlan_interface_state_connected,
    wlan_interface_state_ad_hoc_network_formed,
    wlan_interface_state_disconnecting,
    wlan_interface_state_disconnected,
    wlan_interface_state_associating,
    wlan_interface_state_discovering,
    wlan_interface_state_authenticating
}
 WLAN_INTERFACE_STATE, *PWLAN_INTERFACE_STATE;
???????
  Mit Zitat antworten Zitat
Benutzerbild von ste_ett
ste_ett

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

Re: WLan API Übersetztung ?

  Alt 18. Okt 2006, 07:45
Zitat von nitschchedu:
Habe da mal noch ne Frage , Habe ich das richtig übersetzt ?

Delphi-Quellcode:
 function WlanOpenHandle(dwClientVersion: DWORD;
    pReserved: PBOOL; pdwNegotiatedVersion: DWORD;
    phClientHandle: PHandle): DWORD; stdcall; external 'wlanapi.dll';
|
|
|
v
Delphi-Quellcode:

// public APIs
DWORD WINAPI
WlanOpenHandle(
    __in DWORD dwClientVersion,
    __reserved PVOID pReserved,
    __out PDWORD pdwNegotiatedVersion,
    __out PHANDLE phClientHandle
);

PVOID ist ein einfacher Pointer.
PDWORD kannst du so übernehmen.
Stefan
"Geht nicht!" ist keine Fehlerbeschreibung und "Hab ich schon versucht!" keine Antwort!

Hey, it compiles! Ship it!
  Mit Zitat antworten Zitat
Benutzerbild von chaosben
chaosben

Registriert seit: 27. Apr 2005
Ort: Görlitz
1.358 Beiträge
 
Delphi XE2 Professional
 
#6

Re: WLan API Übersetztung ?

  Alt 18. Okt 2006, 07:51
Was "__reserved" bedeutet weiß ich leider nicht.
Aber "__out" sieht nach einem Out-Parameter aus. Das entsprechende Schlüsselwort gibts auch in Delphi.
Benjamin Schwarze
If I have seen further it is by standing on the shoulders of Giants. (Isaac Newton)
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#7

Re: WLan API Übersetztung ?

  Alt 18. Okt 2006, 08:16
PDWORD würde ich als var Parameter übersetzen.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
nitschchedu

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

Re: WLan API Übersetztung ?

  Alt 18. Okt 2006, 08:26
Danke Leute es geht jetzt !!! Juhhuu
  Mit Zitat antworten Zitat
nitschchedu

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

Re: WLan API Übersetztung ?

  Alt 18. Okt 2006, 11:01
Ich muss euch norchmal Nerven !
Wie Muss ich den das übersetzten?
Code:
typedef struct _WLAN_INTERFACE_INFO_LIST {
    DWORD dwNumberOfItems;
    DWORD dwIndex;

#ifdef __midl
    [unique, size_is(dwNumberOfItems)] WLAN_INTERFACE_INFO InterfaceInfo[*];
#else
    WLAN_INTERFACE_INFO InterfaceInfo[1];
#endif
weil ich habe das hier gefunden .

Code:

1.   #include <windows.h>
2.   #include <Wlanapi.h>
3.   #pragma comment(lib,"Wlanapi.lib")
4.   int _tmain(int argc, _TCHAR* argv[])
5.   {
6.           HANDLE hClient;
7.           DWORD dwVersion;
8.           WLAN_INTERFACE_INFO_LIST *pInterfaces = NULL;    
9.           WLAN_BSS_LIST *bssList;
10.           switch (WlanOpenHandle(1,NULL, &dwVersion, &hClient))
11.           {
12.           case ERROR_SUCCESS:                  
13.                   if(WlanEnumInterfaces(hClient, NULL,&pInterfaces)==ERROR_SUCCESS)
14.                   {
15.                           for(DWORD i=0;i<pInterfaces->dwNumberOfItems;i++)
16.                           {
17.                                   wprintf(L"Interface -- %s\n", pInterfaces[i].InterfaceInfo->strInterfaceDescription );      
18.                                   if(WlanGetNetworkBssList(hClient,&pInterfaces[i].InterfaceInfo->InterfaceGuid ,NULL,dot11_BSS_type_any,FALSE,NULL,&bssList)==ERROR_SUCCESS)
19.                                   {
20.                                           for(DWORD j=0;j<bssList->dwNumberOfItems;j++)
21.                                           {
22.                                                   wprintf(L"\t%S\n",bssList->wlanBssEntries[j].dot11Ssid.ucSSID);
23.                                           }                                   
24.                                           WlanFreeMemory(bssList);
25.                                   }
26.    
27.                           }
28.                           WlanFreeMemory(pInterfaces);
29.                   }
30.                   WlanCloseHandle(hClient,NULL);
31.                   break;
32.           case ERROR_NOT_ENOUGH_MEMORY:
33.                   wprintf(L"No hay suficiente memoria\n");
34.                   break;
35.           case ERROR_OLD_WIN_VERSION:        
36.                   wprintf(L"Version incompatible\n");
37.                   break;
38.           }       
39.           return 0;
40.   }
41.
da ist das dann aufeinmal ein Array
Code:

  for(DWORD i=0;i<pInterfaces->dwNumberOfItems;i++)

..
wprintf(L"Interface -- %s\n", pInterfaces[i].InterfaceInfo->strInterfaceDescription );
???

meine Übersetztung sieht so aus
Delphi-Quellcode:
PnduWLanInterFaceList = ^TnduWLanInterFaceList;
  TnduWLanInterFaceList = record
    dwNumberOfItems: DWORD;
    dwIndex: DWORD;
    InterfaceInfo: TnduWLanInterFaceInfo;
  end;
[edit=Luckie]Delphi-Tags durch c-Tags ersetzt. Mfg, Luckie[/edit]
  Mit Zitat antworten Zitat
Benutzerbild von Flocke
Flocke

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

Re: WLan API Übersetztung ?

  Alt 18. Okt 2006, 11:19
Pointer kann man in C automatisch wie Arrays benutzen, sie werden als Zeiger auf das erste Array-Element interpretiert. Die korrekte Übersetzung der Struktur wäre also:
Delphi-Quellcode:
  PnduWLanInterFaceList = ^TnduWLanInterFaceList;
  TnduWLanInterFaceList = record
    dwNumberOfItems: DWORD;
    dwIndex: DWORD;
    InterfaceInfo: array [0 .. 0] of TnduWLanInterFaceInfo;
  end;
Volker
Besucht meine Garage
Aktuell: RtfLabel 1.3d, PrintToFile 1.4
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 8  1 23     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 14:52 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