Habe schon seit der Existenz dieser Schreibweise mein Code nur noch so geschrieben und viele sehr große, komplexe Scripte gepostet. Anfaenglich habe ich, falls irgendwas nicht geklappt hat, die Schuld gerne auch auf die Punktnotation geschoben, um dann aber festzustellen, dass mit DllStructSetData genau das gleiche passiert ist und das Problem mal wieder 20cm vor dem Bildschirm zu suchen war.
Kurz und knapp: Es ist sicher, sonst waere mir garantiert was aufgefallen. Das einzige worauf du aufpassen musst: Wenn du Arrays in den Strukturen hast (z.B. char[5]) ist erstens aus irgendeinem unerfindlichem Grund der erste Index nicht wie sonst überall auch 0, sondern 1 (wie bei DllStructSetData auch), und wenn du den Index aus einer Variable ausließt musst du zwei Klammern darum setzten (ist wohl ein Bug)
Spoiler anzeigen
$tTest = DllStructCreate("char char[5]")
For $i = 1 To 5
;~ $tTest.char($i) = 'A'; Funktioniert nicht!
$tTest.char(($i)) = 'A'; Funktioniert
Next
$tTest.char(2) = 'B';funktioniert auch
$x = 3
;~ $tTest.char($x) = 'C';funktioniert wieder nicht
$tTest.char(($x)) = 'C';funktioniert
ConsoleWrite($tTest.char & @CRLF)
Alles anzeigen
Lieben Gruß,
Spider