Hallo,
zuerst sollteset Du mal überall ShareMem entfernen. Erstens gehört das (wenn überhaupt) ganz an den Anfang der Projektdatei (.dpr), und zweitens nur, wenn Du Delphi-Strings zwischen einer Delphi-
DLL und einem Delphi-Programm austauschen willst.
Ich habe mal ein Testprogramm angehängt, mit dem Du die
DLL testen kannst (Start -> Parameter -> Host-Anwendung).
Dabei habe ich festgestellt, dass Du einen Pointer auf einen Speicherbereich übergibst, der am Ende von
Replace schon wieder freigegeben wurde. Das kann nicht funktionieren.
Du musst also einen Buffer erstellen, dessen Pointer Du übergibst. Du solltest dann aber aufpassen, dass Du kein Speicherleck fabrizierst.
Ich häng' mal noch die abgeänderte
DLL an.
Gruß
xaromz