Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi RTTI Verständnisfrage (https://www.delphipraxis.net/149017-rtti-verstaendnisfrage.html)

cookie22 12. Mär 2010 12:48


RTTI Verständnisfrage
 
hallo,

wenn ich {$RTTI EXPLICIT METHODS([]) PROPERTIES([]) FIELDS([])} in meine dpr datei schreibe und dann das projekt neu erzeuge, wirkt sich das dann auf das ganze projekt aus inklusive vcl/rtl?

gruß,
cookie

Bernhard Geyer 12. Mär 2010 13:36

Re: RTTI Verständnisfrage
 
AFAIK nein da diese nicht neu kompiliert werden sondern die vorhandenen DCU's verwendet werden.

Stevie 12. Mär 2010 13:53

Re: RTTI Verständnisfrage
 
Wie bei allen Compiler Direktiven wirkt sich auch diese nur auf von dir kompilierte Units aus.
Die RTL/VCL Klassen sind davon nicht betroffen.

Aber in der dpr Datei untergebracht sollte sie sich auf alle im Projekt befindlichen Units auswirken, sofern diese kompiliert werden.

cookie22 12. Mär 2010 14:20

Re: RTTI Verständnisfrage
 
heisst also manuall in alle vcl/rtl pas files eintragen und neu compilieren?

Stevie 12. Mär 2010 14:48

Re: RTTI Verständnisfrage
 
Davon würde ich dir tunlichst abraten.

cookie22 12. Mär 2010 15:06

Re: RTTI Verständnisfrage
 
weil?

hkleebaum 12. Mär 2010 16:46

Re: RTTI Verständnisfrage
 
Um zu verhindern das unnötig RTTI-Ballast un der EXE landet ist

{$WEAKLINKRTTI ON}

in der DPR verwendbar.

Delphi Doku

Zitat:

In manchen Fällen ist es aber nicht wünschenswert, alle Methoden in die Binärdatei einzubeziehen. Oft gibt es keinen RTTI-spezifischen Code, der die Methoden zur Laufzeit sucht und aufruft. Mit {$WEAKLINKRTTI ON} unterdrücken Sie das Standardverhalten (alle Methoden in die Binärdatei einbeziehen). Die Direktive $WEAKLINKRTTI wirkt sich nur auf das Linken aus. Sie hat keinen Einfluss auf die Unit-Compilierung. Das ist die einzige Möglichkeit zu steuern, wie viele RTTI-Informationen in der endgültigen ausführbaren Datei erzeugt werden, ohne dass die Original-Units mit geänderten Einstellungen der Direktive $RTTI erneut compiliert werden müssen.

cookie22 13. Mär 2010 07:18

Re: RTTI Verständnisfrage
 
mit {$RTTI EXPLICIT METHODS([]) PROPERTIES([]) FIELDS([])} + {$WEAKLINKRTTI ON} spar ich schonmal n halbes mb, ist ja schon einiges.


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:52 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz