Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.145 Beiträge
 
Delphi 12 Athens
 
#22

AW: String/Char-Pointer aus C# DLL korrekt auslesen

  Alt 2. Jan 2014, 13:41
OUT/VAR bedeutet, daß die "Variable" geändert werden kann, da eine Referenz auf den Speicher der Variable übergeben wird.

Das wird hier aber nur benötigt, wenn die Funktion den Speicher resserviert und dann den neuen Pointer zurückgeben muß.


Hier wird aber nur ein "unveränderlicher" Zeiger übergeben und nur der Inhalt der aufgezeigten Speichers verändert.
(Leider) kann man bei Pointern nicht angeben, ob der Inhalt des Speichers verändert wird (der Inhalt des referenzierten Speichers kann gelesen oder überschrieben werden), da IN/OUT/VAR/CONST nur eine Beziehung zur Variable selber haben.

Der "Wert" der Variable, also die Adresse des Speichers, wird ja nicht verändert.

Wenn man es genau nimmt, dann könnte eine procedure IchBinBöse(const S: string); dennoch den Inhalt des strings verändern. (auch wenn standardmäßig die Compilermagic und die Prüfungen des Compilers versuchen das zu verhindern, was man aber böswillig umgehen könnte)
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests

Geändert von himitsu ( 2. Jan 2014 um 13:46 Uhr)
  Mit Zitat antworten Zitat