Einfache Typen ala Integer, Char, Byte und Records damit gehen immer.
ShortString ist ein Record
und PAnsiChar/PWideChar sowie WideString (das ist ein von Delphi gemappter String der OleAut32 >
SysAllocString)
und Pointer daauf gehen immer
Interfaces (also
COM-Objekte ala IInterface)
und Variant
gehen auch
ohne SharedMemory, geht kein String/AnsiString/UnicodeString und dynamischen Arrays. (nur zwischen Delphi-EXE/
DLL und Delphi-
DLL)
Bei BPLs hat man von der Nutzung her garkeine Probleme und kann alles so machen, als wäre der Code der
BPL und deren Units in der EXE drin.