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..
// Eine Struktur in C#
public struct Farben
{
public int Rot = 0xFF0000;
public int Blau = 0x00FF00;
public int Grün = 0x0000FF;
}
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:
DllDatei oder Handle von DllOpen
Typ des Rückgabewertes - "int" , "char" usw. (wenn keine rückgabe dann "none")
Funktionsname die aufgerufen werden soll
Parameter1 Typ (int,char,ptr,usw.)
Parameter1 Inhalt
usw...
Bei meiner Funktion steht noch "$eBoxStruct_Ptr"
und als Typ "ptr".
Hier der Code Dazu
;; ->> [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)
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.
$DllCall = DllCall("mydll.dll","ptr","ShowInfo","int",1)
$StructPointer = $DllCall[0]
$s_InfoStruct = "char[] Text; int Type"
$InfoStruct = DllCreateStruct($s_InfoStruct, $StructPointer)
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 <<--