Auch wenn die beiden Klassen aus der gleichen
Unit stammen, sind die Klassen in der EXE und
DLL anders und du darfst die nicht einfach so übergeben.
Inwiefern sind die Klassen anders? Also z.B. hier der TMemoryStream?
Alles andere führt zu komischen Ergebnissen.
Ich hatte bislang (also bis Delphi XE6 bzw. Kombination aktuelle Delphis +
DLL <= XE6) in der Verwendung
VCL-APP zu FMX-
DLL keine komischen Ergebnisse, sondern nur funktionierende Programme. Außerdem möchte ich noch mal festhalten, dass es "nur" um das Entladen der
DLL geht. Aufruf der
DLL, Übergabe und Rückgabe von Daten funktioniert alles ordnungsgemäß.
Habe grade mal eine FMX-
DLL erstellt, die nur eine Procedure "ShowAForm" exportiert (also ohne Parameter). Ihre einzige Aufgabe ist dann, wenn aufgerufen, eine leere FMX-Form anzuzeigen.
Also NULL Thema von wegen falscher Datenübergabe oder so. Und siehe da: Bei Freelibrary hängt das Programm.
Wer das immer noch nicht glauben mag: Ich habe diese Demo (XE8-Version) hier mal angehängt (Zuerst FMXFilters.dpr kompilieren = die FMX-
DLL) und dann die MyDLLDemo.dpr kompilieren (= die
VCL-App).
Wer hier etwas findet, das programmtechnisch falsch ist, ich lasse mich gerne eines Besseren belehren... aber momentan sieht das für mich nach einem BUG aus.