Also eigentlich dürfte dieses funktionieren ... hast du auch beie Funktionsdefinitionen gleich? (vorallem das stdcall)
Ansonsten könntest du auch einfach einen WideString nehmen, dieser wird von Delphi intern auf einen OLEStr umgeleitet, womit er über den Speichermanager der ole32.dll läuft
und demnach auch über Modulgrenzen hinweg verwendet werden kann.
Oder du verwendet einen SharedManager und kannst dann auch "normale" Strings/AnsiStrings verwenden.
Ja und zu dem PChar ... da könntest du es mal über eine lokale Variable versuchen
Delphi-Quellcode:
var s: String;
s := 'test';
TestDLL(PChar(s));