Parameter als PChar sind problemlos verwendbar, solange die übergebenen Zeichenketten in der
DLL nicht verändert werden.
Wieder auf String casten und dann verändern ist nicht zulässig.
Doch. Ein "auf String casten" erzeugt eine Kopie des Inhalts.
Man muss nur darauf achten, dass auf beiden Seiten das gleiche PChar verwendet wird, oder besser gleich auf beiden Seiten PAnsiChar oder PWideChar, dann ist es eindeutig.
Das ist richtig, die Kopie kann man natürlich verändern. Delphi behandelt PChar, PAnsiChar, PWideChar anders wie normale Pointer.