pyro123 hat folgendes geschrieben: |
Tut mir leid, aber ich hab echt nicht kapiert, was die MSDN mir vermitteln wollte :\ |
Sind die zwei letzten Sätze bei LayoutKind.Auto wirklich
so schwer zu verstehen

?
Chryzler hat folgendes geschrieben: |
(hab den Unterschied nie kapiert..) |
Na dann wäre es spätestens bei diesem Thema höchste Zeit... Lasse dir einmal Sizeof eines unpacked und eines packed Records, der ein Byte und danach ein beliebiges anderes Feld besitzt, ausgeben. Zum Glück sind hier wohl alle Felder so oder so aligned (bei Delphi muss man ja nicht lange herumraten, ob es ein Compiler für x86 oder x64 war

), also macht es in diesem Fall wirklich einmal keinen Unterschied.
Zitat: |
D.h. du könntest UploadProgress als byte[20] deklarieren. |
Ein Record ist ein Wertetyp, ein Array ein Referenztyp - sicher, dass
das irgendwie funktionieren kann

?
Zitat: |
ein Record mit 5 Feldern ist ja nicht gleich eine Struktur, die 5 Felder hat. |
Gegenfrage: Weshalb nicht

?
Nachdem ich kurz von einer BadImageFormatException aufgehalten wurde (habe ich schon erwähnt, dass Delphi beim Thema x64 noch nicht so ganz weit fortgeschritten ist

? ), hat sich meine Vermutung bestätigt: Mit einem out-Parameter funktioniert alles problemlos, mit einem Rückgabewert werden die Werte - öhm... höchstinteressant (allerdings keine Exception). Wenn niemand die Lösung oder einen Workaround kennt, solltest du vielleicht einmal versuchen, eine neue Delphi-Dll zu erstellen, die die Funktion in eine out-Prozedur wrappt.