Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi W1001 Symbol 'TMeinTyp' ist bibliotheksspezifisch (Delphi) (https://www.delphipraxis.net/180627-w1001-symbol-tmeintyp-ist-bibliotheksspezifisch-delphi.html)

Der schöne Günther 4. Jun 2014 11:43

Delphi-Version: XE5

W1001 Symbol 'TMeinTyp' ist bibliotheksspezifisch (Delphi)
 
Man nehme

Delphi-Quellcode:
program Project4;

{$APPTYPE CONSOLE}

{$R *.res}

type
   TSomeRecord = record
      meinInteger: Integer;
   end library;

var
   myRecord: TSomeRecord;
begin
   myRecord.meinInteger := 42;
end.
Man beachte das
Delphi-Quellcode:
library
zwischen
Delphi-Quellcode:
end
und Semikolon.

Der Compiler sagt dann:
Zitat:

[dcc32 Warnung] Project4.dpr(13): W1001 Symbol 'TSomeRecord' ist bibliotheksspezifisch
Die Hilfe spricht zur Compilerwarnung:
Zitat:

Das Symbol ist (mit der Hinweisdirektive library) als nicht in allen Bibliotheken verfügbar gekennzeichnet. Wenn Sie andere Bibliotheken verwenden, kann dies zu Problemen führen.

Mit der Compiler-Direktive $WARN SYMBOL_LIBRARY ON/OFF können alle entsprechenden Warnungen für Symbole in der aktuellen Unit aktiviert oder deaktiviert werden.
Ich kann damit nichts anfangen. Kann das jemand erklären? Wo würde man so etwas einsetzen? Welche Bibliotheken?

Bernhard Geyer 4. Jun 2014 11:56

AW: W1001 Symbol 'TMeinTyp' ist bibliotheksspezifisch (Delphi)
 
Was ist der Sinn von der Library-Angabe
Diese angebe kenne ich dort gar nicht.

Sir Rufo 4. Jun 2014 12:01

AW: W1001 Symbol 'TMeinTyp' ist bibliotheksspezifisch (Delphi)
 
Wird hier erklärt wofür das gedacht ist
http://docwiki.embarcadero.com/RADSt...eis-Direktiven

Der schöne Günther 4. Jun 2014 12:17

AW: W1001 Symbol 'TMeinTyp' ist bibliotheksspezifisch (Delphi)
 
Dann daraus nochmal die relevanten Ausschnitte:
Zitat:

Die Hinweis-Direktive library bei einem Symbol oder einer Unit gibt an, dass der Quelltext eventuell nicht existiert oder die Implementierungen in unterschiedlichen Bibliotheksarchitekturen wesentlich voneinander abweichen.

Die Direktiven platform und library enthalten keine Angaben über die Plattform oder Bibliothek.

[...]

Mit der Direktive platform werden Elemente gekennzeichnet, die für ein bestimmtes Betriebssystem (z.B. Windows) spezifisch sind. Mit deprecated wird angegeben, dass ein Element veraltet ist oder nur aus Gründen der Abwärtskompatibilität unterstützt wird. Die Direktive library wird verwendet, um auf die Abhängigkeit von einem bestimmten Bibliotheks- oder Komponenten-Framework hinzuweisen.
Folglich: "Vorsicht, andere Implementationen könnten sich hier ganz anders verhalten".

Kann jemand ein konkretes Beispiel bringen? Beispielsweise etwas mit TDataSet-Ableitungen, dass sich irgendwo etwas anders verhalten könnte, ob ich jetzt FireDAC, dbExpress oder die BDE nehme?


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