Hi,
da wahrscheinlich noch keiner die DLL Funktionen von AutoIT zu benutzen weiß, werde ich diesen Bug mal beheben x)
AutoIT wurde für die Verwendung von DLL'S auch angepasst.
Man kann auch Strukturen erstellen, wie die aus C++/C#/etc..
Halt nicht so mit den geschweiften Klammern, sondern über eine Funktion und den Inhalt als String.
Damit hätten wir jetzt eine Leere Struct.
Es gibt noch Funcs mit denen man Daten in Structs eintragen und Auslesen kann und den Pointer einer in AutoIT erstellten Struct ermitteln kann.
Um eine Dll zu Nutzen kann man sie entweder Manuell öffnen und schließen
oder das Automatisch erledigen lassen.
Manuell :
Automatisch:
In meinem Beispiel seht ihr die Funktion DllCall.
So wird sie angewendet:
Bei meiner Funktion steht noch "$eBoxStruct_Ptr"
und als Typ "ptr".
Hier der Code Dazu
Alles anzeigen
_____
Wenn aber eine DLL einen Pointer zu einer anderen Struct zurückgibt wo Daten eingetragen sind, muss man eine neue ´Struct definieren und dne Pointer angeben.
Somit wäre direkt alles in der Struct Ausgefüllt.
Nun muss man man es nur noch auslesen.
Schon hat man alles.
Das ist wirklich einfach.
->> More will come <<--
da wahrscheinlich noch keiner die DLL Funktionen von AutoIT zu benutzen weiß, werde ich diesen Bug mal beheben x)
AutoIT wurde für die Verwendung von DLL'S auch angepasst.
Man kann auch Strukturen erstellen, wie die aus C++/C#/etc..
Halt nicht so mit den geschweiften Klammern, sondern über eine Funktion und den Inhalt als String.
Damit hätten wir jetzt eine Leere Struct.
Es gibt noch Funcs mit denen man Daten in Structs eintragen und Auslesen kann und den Pointer einer in AutoIT erstellten Struct ermitteln kann.
Um eine Dll zu Nutzen kann man sie entweder Manuell öffnen und schließen
oder das Automatisch erledigen lassen.
Manuell :
Automatisch:
In meinem Beispiel seht ihr die Funktion DllCall.
So wird sie angewendet:
Bei meiner Funktion steht noch "$eBoxStruct_Ptr"
und als Typ "ptr".
Hier der Code Dazu
Quellcode
- ;; ->> [Bearbeitbar] <<- ;;
- $sText = "It Works!" ;// Text der Box
- $sTitle = "eBox" ;// Titel der Box
- $iFlag = 2 ;// 1=none,2=Info,3=Stop,4=Question,5=Warning
- ;; ->> [/Bearbeitbar] <<- ;;
- $s_eBox = "LPSTR Text; LPSTR Title; int Flag"
- $eBoxStruct = DllStructCreate($s_eBox)
- DllStructSetData($eBoxStruct,1,$sText)
- DllStructSetData($eBoxStruct,2,$sTitle)
- DllStructSetData($eBoxStruct,3,$iFlag)
- $eBoxStruct_Ptr = DllStructGetPtr($eBoxStruct)
_____
Wenn aber eine DLL einen Pointer zu einer anderen Struct zurückgibt wo Daten eingetragen sind, muss man eine neue ´Struct definieren und dne Pointer angeben.
Somit wäre direkt alles in der Struct Ausgefüllt.
Nun muss man man es nur noch auslesen.
Schon hat man alles.
Das ist wirklich einfach.
->> More will come <<--