Neben allem was bisher zum bloßen Austausch von Char-arrays gesagt wurde:
Hast du dir schon einmal überlegt WideString zu nehmen?
Dieser Typ wird von Windows selbst verwaltet und unterliegt somit nur indirekt dem MemoryManagement von deiner
DLL oder anderen Binaries.
Das das geht sollte jeder merken, der schon einmal mit
COM gearbeitet hat.