Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

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

AW: Dll-Methodenparameter von var nach const ändern

  Alt 20. Jan 2017, 10:15
Selbst wenn der Integer als CONST-Referenz übergeben würde, kann man den Wert dennoch ändern, denn den Pointer hat man dann und ignoriert einfach das CONST.

VAR und OUT sind immer Referenzen.
CONST sagt nur dem Compiler, dass es nicht verändert werden soll, aber nichts darüber, ob als Referenz oder Wert.
CONST und IN/OHNE arbeiten also gleich und bei CONST wird nur eine Compilerprüfung aktiviert, welche man böswillig umgehen könnte.

Bei IN/OHNE ist endweder nur der lokale Wert änderbar, oder es wird ein COPY bei Prozedureintritt, bzw. später als Copy-On-Write implementiert.

Achtung, wenn ein älterer Compiler das [Ref] noch nicht kennt, aber Attribute schon implementiert sind, dann ignoriert er das einfach und gibt nichtmal eine Warnung raus.
Genauso wie bei [Weak] und [Unsave].
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests

Geändert von himitsu (20. Jan 2017 um 10:18 Uhr)
  Mit Zitat antworten Zitat