Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Delphi-Compiler-Direktiven: EXTERNALSYM & WEAKPACKAGEUNIT (https://www.delphipraxis.net/53272-delphi-compiler-direktiven-externalsym-weakpackageunit.html)

Kedariodakon 13. Sep 2005 13:40


Delphi-Compiler-Direktiven: EXTERNALSYM & WEAKPACKAGEUNI
 
Kann mir zufällig wer erkläre für was die Direktiven EXTERNALSYM & WEAKPACKAGEUNIT gut sind?
Wenn ich mir so mal die Windows.Pas und Winsock.pas anschau kommen die da ziehmlich oft vor, zumindest EXTERNALSYM...

Hier im Forum konnte ich nicht wirklich was dazu finden und
Zitat:

Delphi-Referenz durchsuchenEXTERNALSYM sagt mir sowas wie:

Die Direktive EXTERNALSYM verhindert, dass das angegebene Delphi-Symbol in für C++ generierten Header-Dateien enthalten ist. Wenn eine überladene Routine angegeben wird, werden alle Versionen der Routine aus der Header-Datei ausgeschlossen.
Nur anfangen kann ich damit nicht... :gruebel:
Kann mir wer erklären wozu die da gebraucht werden, bzw. für was ich die brauch? :roll:

Wenn mir "WEAKPACKAGEUNIT" noch wer erklären könnte wär ich auch dankbar... :wink:

Bye

jbg 13. Sep 2005 14:29

Re: Delphi-Compiler-Direktiven: EXTERNALSYM & WEAKPACKAG
 
EXTERNALSYM
Das ist für den C++Builder gedacht. Der benutzt die selben Quellcode-Dateien wie Delphi. Der Delphi Compiler erzeugt für den C++Builder .hpp Dateien. Und weil Windows in C (/C++) geschrieben ist, werden auch Windows-Header Dateien eingebunden.
Nun kann es vorkommen, dass die Windows.pas z.B. DWORD definiert. Das wird aber durch windows.h auch schon definiert. Weil der C++ Compiler die zweite Definition als Fehler erkennen würde, sagt man dem Delphi-Compiler mit EXTERNALSYM, dass er das Symbol nicht in die .hpp Datei exportieren soll. Es handelt sich dabei nämlich um ein EXTERNAL SYMbol.

WEAKPACKAGEUNIT
Wenn man eine Unit in ein Package steckt, dürfen keine anderen Packages diese Unit auch enthalten, weil es sonst zu "Doppelte Unit" Fehlern kommt. Mit WEAKPACKAGEUNIT sagt man nun einer Unit, dass sie "Package-Private" ist. Eine WEAKPACKAGEUNIT Unit darf keine vorinitialisierten Daten und auch keine initialization/finalization Bereich haben.

Kedariodakon 13. Sep 2005 14:38

Re: Delphi-Compiler-Direktiven: EXTERNALSYM & WEAKPACKAG
 
Das heißt, dass EXTERNALSYM nur wichtig ist, wenn mein Quallcode auch mit dem c++ Builder verwendet werden soll.
Unter Delphi ist das für mich von keiner Bedeutung, korrekt?

Bye

Dann schonmal danke für deine Erklärung :thumb:


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:25 Uhr.

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