Forum: Programmieren allgemein
Delphi
by himitsu,
3. Nov 2014
Oder ein IInterface um das Objekt drumrum (also auch ein Wrapper :angel:), da dort das Interface feste Indize besitzt (wenn man überall die selbe Definition verwendet) und es dann in jedem Modul eine passende Übersetzung für Interface<->Klasse gibt.
Und natürich nur statische Typen verwenden, also kein PChar, Char usw., sondern PAnsiChar, PWideChar usw.
Für Integer/NativeInt/Pointer würde es...
Forum: Programmieren allgemein
Delphi
by himitsu,
3. Nov 2014
Bei VAR wird die Referenz unverändert reingegeben, da ist es egal.
Bei prodecure Test(S: WideString); wird aber eine 100%-Kopie des Strings erstellt, bei Aufruf der Prozedur.
Bei LongStrings (AnsiString/RawByteString/UTF8String und UnicodeString) wird einfach nur die Referenzzählung schnell hochgezählt, was praktisch nicht auffällt.
Bei prodecure Test(const S: WideString); passiert das...
Forum: Programmieren allgemein
Delphi
by himitsu,
2. Nov 2014
WideString ist ein bissl langsamer.
hat keine Referenzzählung
man sollte bei Parameterübergaben niemals das CONST vergessen
zwischen den "normalen" Delphistrings und Dem muß es erst umkopiert werden
...
Forum: Programmieren allgemein
Delphi
by himitsu,
1. Nov 2014
PChar schonmal garnicht. :zwinker:
Entweder PAnsiChar oder PWideChar.
Denn der LongString (AnsiString) ist nicht kompatibel, da man in 2009 die Typ intern um zwei neue Felder erweitert hat (CharSize und CodePage),
also ein schreibender Zugriff geht überhaupt nicht und maximal kann ein älteres Delphi den neueren Stringtypen auslesen, aber nicht andersrum.
Bezüglich SharedMem brauchst du...