Mir ist gerade ein Bug aufgefallen.
Wenn man eine Struktur mit einem Datentyp-Array erstellt und dann versucht auf ein Element aus dem Array über eine Variable zuzugreifen, so wird immer 0 ausgegeben (@error = 3).
Es sei denn man wandelt die Variable in eine Zahl um.
Hier mal ein Beispiel-Script:
AutoIt
Global $tStruct = DllStructCreate('uint64 data[3];')
; Zuweisung und Abfrage ueber eine Zahl funktioniert
$tStruct.data(1) = 1234
ConsoleWrite('@error: ' & @error & ' ')
ConsoleWrite('$tStruct.data(1) = ' & $tStruct.data(1) & @CRLF & @CRLF) ;
; Zuweisung und Abfrage ueber eine Variable funktioniert nicht
For $i = 1 To 3
$tStruct.data($i) = 1234
ConsoleWrite('@error: ' & @error & ' ') ; Error = 3 ???
ConsoleWrite('$tStruct.data($i) = ' & $tStruct.data($i) & @CRLF)
Next
; bzw. nur mit Int oder Number
For $i = 1 To 3
$tStruct.data(Int($i)) = 1234
ConsoleWrite('@error: ' & @error & ' ')
ConsoleWrite('$tStruct.data(Int($i)) = ' & $tStruct.data(Int($i)) & @CRLF)
Next
Alles anzeigen
Könnt ihr das bestätigen?