Ich habe zwei Fragen:
1. Wo ist im Code 'xm' deklariert?
2. Wo ist das Problem, ein Objekt an eine
DLL zu übergeben? Letztendlich ist das nur ein Pointer. Solange ich das Objekt in der
DLL nicht freigebe, ist die Welt in Ordnung. Gut, ich muss wissen, wie das Objekt intern aufgebaut ist, aber das kriegt man ja noch hin.
Problematisch könnte es sein, in einer
DLL ein Objekt zu erzeugen und das dann als Rückgabewert an den Aufrufer zu liefern. Dafür würde ich (korrigiert mich) eine
BPL nehmen.
Ich würde einfach mal versuchen, die Stream-Instanz im Aufrufer zu erzeugen, der
DLL zu übergeben und diese dann den Stream füllen zu lassen. Allerdings ist die
DLL dann auch wieder komplett an Delphi als Aufrufer gebunden (und rein theoretisch sogar an genau diese Version inkl. Update).
Daher der etwas unglücklich formulierte Rat von Sir Rufo, nur mit Basistypen zu arbeiten. Deine
DLL könnte z.B. nur mit Byte-Arrays hantieren: Du übergibst also die Länge des Arrays (als Integer) und die Bytes an sich als Pointer. Damit kann jeder etwas anfangen.