…dann lies das schnell
Ich möchte eine DLL oder ein COM-Objekt erstellen in Delphi, das in VB verwendet werden kann. Deshalb muss ich einiges über die VB-Typen wissen.
Entsprechungen für die wichtigsten numerischen Typen wie Byte, Integer, Long als auch für reelle Zahlen wie Single und Double hab ich. Was ich noch brauche ist der interne Aufbau von VB-Strings.
Wie liegen diese im Speicher vor, damit ich die an die DLL und wieder ans VB-Proggie übergneen kann.
Binär sieht ein Delphi-String so aus:
[32bit-Length] [String-Data]
4 Byte (Long) eigentliche Daten
In Delphi ist ein String eigentlich nur ein Pointer auf ein Array of Char. Eben mit 4 Byte Length-Offset an (Offset - 4).
SomeStr := ‚Hallo‘;
schreibt über den Pointer zum String
Pointer(SomeStr)^ := ‚Hallo‘
schreibt direkt ins Memory
Als 2. wären nocvh Arrays. Ich weis, dass diese in VB durch Variants repräsentiert sind. Ein Variant ist soweit ich weis, auch inb VB ein Pointer auf etwas.
Delphi-Arrays haben den gleichen Aufbau wie Strings, also ein Zeiger auf die Daten, 4 Byte davor die Lengne in Elementen bzw. die Anzahl der Elemente.
Wie sieht das in VB aus ?
thx, Roger