Ich habe nur wenig Erfahrung mit DLLs, aber solange es nicht super zeitkritisch oder gigantische Datenmengen sind, weshalb macht man das nicht einfach so, wie man es z.B. aus der Windows-
API auch kennt?
Warum sollte man den Aufwand betreiben, wenn man es nicht muss? WideStrings sind etwas langsamer, aber deutlich einfacher zu nutzen.
Die Lösung aus dem ersten Post passt schon so. Ich würde den WideString nur als Rückgabewert nehmen. Wofür soll das ein var Parameter sein? Es sei denn der Rückgabewert soll z.B. den Erfolg signalisieren.