Also wo liegt nun genau das Problem?
Bei den übergebenen PChars oder bei den Objekten?
Zu den PChars:
Delphi-Quellcode:
(* Anders als bei Strings müssen diese erst Speicher zugewiesen bekommen, wenn sie nicht aus dem Quelltext heraus mit Konstanten gleichgesetzt werden: *)
var
P: PChar;
begin
P := '
Hallo Welt!';
end;
(* wenn ich DLLs PChars übergeben hab oder in einer DLL Funktion ein variabler PChar zurück gegeben wurde, hab ich dafür erst Speicher reservieren müssen: *)
var
P: PChar;
S:
String;
//intern dürfen Strings benutzt werden //soweit ich weiß
begin
S := DateToStr(Date);
//ein Bsp, wo man nicht einfach P := PChar(DateToStr(Date)) schreiben kann
GetMem(P, Length(S));
//oder obere Zeile und den String weglassen und direkt folgendes schreiben
// GetMem(P, 10);
StrPCopy(P, S);
end;
Soviel zum Thema PChars, vlt liegts ja an etwas in die Richtung.
Zu den Pointergeschichten: Mir hat mal jemand gesagt, dass es egal sei, wenn man an DLLs TMenuItem s übergibt und so, so lange die Version der
VCL übereinstimmt! (zu Programmierspracheübergreifenden Projekten kann ich da nicht sagen!)