Danke für Eure Erfahrungen + Infos:
Ich möchte mit Rio eine
DLL schreiben, die ich aus D2006 aufrufe. Da ich Strings übergebe - muss ich da
Unicode-mäßig auf irgendwas aufpassen?
D2006 benutzt ja
ANSI-Strings + in Rio sind Strings
Unicode.
Danke für jede Info.
Verwende in Funktionen, die von der
DLL exportiert werden,
ausschließlich Datentypen, die
API- oder
COM-kompatibel sind! Das ist die einzig sichere Methode, wenn Programm und
DLL mit unterschiedlichen Delphi-Versionen gebaut werden. Für Text wäre daher Widestring als Parametertyp geeignet (das ist ein
COM BSTR unter der Haube), oder halt PAnsiChar oder PWidechar(explizit, nicht einfach PChar!). Intern können die beiden Module den String-Typ verwenden; die notwendige Konvertierung
ANSI <->
Unicode macht die
RTL automatisch, wo notwendig. Nur für einen als Var oder out deklarierten Widestring-Parameter müßte das aufrufende Programm eine Variable vom Typ Widestring verwenden.