Zitat von
mkinzler:
Versuch es mal mit einer temporären lokalen Stringvariable
Das funktioniert auch nicht...
Kann es ja gar nicht, da das Stringobjekt dann ja trotzdem von der
DLL erstellt und von der EXE gelöscht wird.
Das Problem hab ich ja nicht nur bei Strings, sondern auch wenn ich andere Objekte (wie eine TBitmap) in der
DLL erstelle und zuweise (sodass sie dann von der EXE gelöscht werden, was ja nicht gehen kann -> falscher Heap).
Die Frage war jetzt eher, wie man diese Memory-Management-Probleme lösen kann, ohne ShareMem zu verwenden (geht ja nicht, da Closed Source). Ich
muss Objekte in der
DLL erstellen.
Und ich kann nichtmal das alte Objekt zwischenlagern, WM_DESTROY abfangen und das neue selber "free"en und das alte wieder zuweisen, weil einiges dann nicht funktioniert, z.B. wenn ich einer Listbox Items hinzufüge - wenn ich sie dann am Ende wieder lösche, kann der RPG Maker den Text nicht mehr lesen und speichern - und genau das wäre das Ziel gewesen.