![]() |
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:
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 |
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. |
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