Der String befindet sich in der
DLL Und du bekommst nur den Zeiger darauf zurück. Wenn die
DLL entladen wird, ist auch der String weg.
Edit: Normalerweise ist der String bereits am Ende der Funktion weg. Das ist hier nur nicht der Fall, weil du eine Stringkonstante verwendest, welche im
DLL-Image liegt.
Du musst das Konzept komplett umstellen: Speicher in der Exe reservieren. Zeiger auf den Speicher an
DLL übergeben.
DLL kopiert den Inhalt und fertig.
Oder du nutzt WideString.
Dieser Beitrag ist für Jugendliche unter 18 Jahren nicht geeignet.