Die Aufrufkonventionen stimmen nicht überein.
Des Weiteren hast du es dir mit den PChars deutlich zu einfach gemacht (auf
DLL-Seite). Wenn die Funktionen verlassen werden, wird der String freigegeben und es ist reines Glück, falls im PChar immer noch die alte Zeichenkette steht.