Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Wozu ist PACKAGEINFO & DVCLAL da ? (https://www.delphipraxis.net/86695-wozu-ist-packageinfo-dvclal-da.html)

turboPASCAL 17. Feb 2007 22:24


Wozu ist PACKAGEINFO & DVCLAL da ?
 
Moin moin,

habe gerade gesehen das es nicht unbedingt notwendig ist, zum funktionieren einer Exec.,
das in der RC_DATA -Section einer Execresource sich die Einträge PACKAGEINFO & DVCLAL
befinden.
In PACKAGEINFO stehen zB. die verwendeten Unit drin.

Wozu sind die denn gut ? :gruebel:

Daniel G 17. Feb 2007 22:38

Re: Wozu ist PACKAGEINFO & DVCLAL da ?
 
Zitat:

Zitat von turboPASCAL
In PACKAGEINFO stehen zB. die verwendeten Unit drin.

Wozu sind die denn gut ? :gruebel:

Imho (aber wirklich nur imho) sind das die Debuginformationen, die der Delphi-Compiler mit in die Exe kompilliert.

negaH 17. Feb 2007 22:52

Re: Wozu ist PACKAGEINFO & DVCLAL da ?
 
Debuginfo ist vollkommener Quatsch.

PACKAGEINFO wird im Grunde nur benötigt wenn man mit Packages arbeitet. In dieser Resource sind die verwendeten Units im Modul enthalten. Beim Laden eines Packages wird am Hand dieser Resource überprüft ob eine gleiche Unit in 2 unterschiedlichen Modulen eingelinkt wurde. Ist dies der Fall wird das Package nicht geladen. Ansonsten würde man zb. bei Klassen die Modulübergreifend in Packages drinnen sind ja arge Probleme bekommen, durch die Doppeldeutigkeit die durch das Benutzen mehrer gleicher Unit Kopien entstehen.

DVCAL enthält die RTL Version des benutzen Borland Produktes. Der System RTL Code kann damit überprüfen das eine EXE die mit der Standard Delphi Version kompiliert wurde eben keine Packages laden kann die zb. nur in der Professional Version verfügbar sind. DVCAL ist also ein einfach auszuhebelnder Lizensmechanismus seitens Borland (ziemlich primitiv)

Gruß Hagen

turboPASCAL 17. Feb 2007 23:04

Re: Wozu ist PACKAGEINFO & DVCLAL da ?
 
Ahah, also sind die Infos in meiner nonVCL-App die keine Packages verwendet sinlos. :gruebel:

Daniel G 17. Feb 2007 23:47

Re: Wozu ist PACKAGEINFO & DVCLAL da ?
 
Zitat:

Zitat von negaH
Debuginfo ist vollkommener Quatsch.

Dachte ich's mir doch. Deswegen das doppelte "imho". Aber gab's da nicht auch was? :gruebel:

turboPASCAL 18. Feb 2007 00:12

Re: Wozu ist PACKAGEINFO & DVCLAL da ?
 
Zitat:

Aber gab's da nicht auch was?
Wie du meinen ?

Daniel G 18. Feb 2007 00:22

Re: Wozu ist PACKAGEINFO & DVCLAL da ?
 
Zitat:

Zitat von turboPASCAL
Wie du meinen ?

Na, Delphi kompilliert doch standardmäßig Debuginfos mit in die Exe, oder? Mehr meinte ich eigentlich gar nicht... :stupid:

jbg 18. Feb 2007 01:46

Re: Wozu ist PACKAGEINFO & DVCLAL da ?
 
Zitat:

Zitat von Daniel G
Na, Delphi kompilliert doch standardmäßig Debuginfos mit in die Exe, oder?

Genau das macht Delphi eben nicht (wenn man nicht gerade die TD32 DebugInfos aktiviert hat). Die Debuginfos werden nur in die dcu und dcp Dateien geschrieben.

Daniel G 18. Feb 2007 09:39

Re: Wozu ist PACKAGEINFO & DVCLAL da ?
 
Zitat:

Zitat von jbg
Genau das macht Delphi eben nicht (wenn man nicht gerade die TD32 DebugInfos aktiviert hat). Die Debuginfos werden nur in die dcu und dcp Dateien geschrieben.

Hm, ok. Danke, wieder was gelernt. :wink:

negaH 18. Feb 2007 14:03

Re: Wozu ist PACKAGEINFO & DVCLAL da ?
 
Die Debug Informationen werden in eine eigene Section der EXE/DLL, eg. Modul gelinkt. Das ist Aufgabe des Linkers nicht des Compilers. Ein Modul besteht aus verschiedenen Sections, zb. TEXT fürs Codesegement, DATA fürs Datensegment, BSS für vorinitialisierte Variablen, RSRC die Resourcen wie DFMs, ICONs usw. Und es gibt eben auch eine Debuginfo Section wenn gewünscht. Das Format dieser Infos ist aber sehr unterschiedlich, je nach Linker und Compiler.

Gruß Hagen


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:47 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