Einzelnen Beitrag anzeigen

DualCoreCpu
(Gast)

n/a Beiträge
 
#5

AW: Include-Dateien richtig verwenden?

  Alt 17. Okt 2015, 08:56
Du musst nicht die Include-Dateien in Deinen Quell-Code einbinden, sondern die Units, zu welchen die Include-Dateien gehören.

Um welche Definitionen geht es?
Ich weiß leider nicht, wie ich mein Problem anschaulicher erklären kann. Habe deshalb für mein Programm eine andere Lösung benutzt.

Hier das Problem dennoch als Verständnisfrage:

Ich habe zum Beispiel diese Include Dateien in irgendeiner meiner units aufgeführt:

Delphi-Quellcode:
unit myUnit;

interface

uses
  Windows, Sysutils, Classes, ....;

{$i base.inc}     //Definitionen
{$i other.inc}
{$i further.inc}

implementation

{$i base.inc}     //wegen eventueller Implementationen
{$i other.inc}
{$i further.inc}

end.
Nun gebe es in base.inc Definitionen, die in weiteren Definitionen in other.inc und further.inc vorausgesetzt werden, sagen wir in nachfolgenden record Strukturen in denen solche in vorherigen Include Dateien definierten Typen für Datenfelder verwendet werden oder Konstantenwerte aus zb. base.inc in other.inc oder further.inc wieder benötigt werden, sei es für Rcordvarianten oder Zuweisung neuer Konstanten mit den Werten, die in einer der vorher aufgeführten Include Dateien definiert sind.

Der FPC Compiler findet einige der Definitionen nicht, wenn sie in nachfolgenden Include Dateien wieder benötigt werden.

Ich dachte, das es da eine Lösung geben sollte, da Freepascal zum Beispiel in der Unit Windows nur die Include Dateien mit allen Definitionen aufgeführt hat.

Warum funktioniert das mit den Standard Units von Freepascal nicht aber mit eigenen Units, in denen ich dieselbe Technik verwende.

Bitte diskutiert nicht über Sinn und Unsinn dieser Technik, die ja Freepascal auch verwendet, sondern nur über das Problem an sich, wraum das mit Freepascal geht, aber nicht, wenn ich das ebenfalls anwenden will.

Für mein Programm habe ich jetzt einfach eine große Unit mit allen benötigten Definitionen geschrieben und brauche daher keine Include Datei mehr.

Das Problem interessiert mich aber dennoch.
  Mit Zitat antworten Zitat