Entwickler-Ecke

Dateizugriff - Dll + Globale Konstanten


delphijanka - Mo 31.05.10 08:37
Titel: Dll + Globale Konstanten
Hallo. Hier eine kniffelige Frage.

Ich entwickle gerade ein Programm, welches einige dynamische Momente beinhaltet. Dynamisch heißt hier, dass vielleicht ein mal im Monat der Quelltext etwas abgeändert und das Programm damit neu compiliert werden soll. Der Quelltext ist zum Teil zeimlich komplex, sodass dieses irgendwie in einer Datenbank oder ähnliches nicht abgelagert werden kann. Das Programm soll später vom Auftraggeber benutzt werden.

Die eine Möglichkeit wäre z.B. das Main-Teil vom logischen Teil zu trennen, in dem Main-Teil die Update-Funktion einzubauen. Sollte der Programm-Administrator dann die Dateien ändern, werden diese updated und entsprechend benutzt.

Also habe ich mir gedacht diese logische Teile als Dll's zu konzepieren. Das Problem ist allerdings, ich greife in diesen logischen Teilen auf gemeinsame globale Daten, auch Konstanten, welche in der Menge ziemlich viele sind. Ich wüsste nicht, wie man die gleiche Konstante mit demselben Namen in einer Dll benutzen kann. Wenn es nicht geht, wie kann mein Problem anders gelöst werden?

Gruß.


Moderiert von user profile iconNarses: Topic aus Sonstiges (Delphi) verschoben am Mo 31.05.2010 um 23:16


Tastaro - Mo 31.05.10 09:23

Grüße,

man kann alle Konstanten in eine Unit schreiben und diese sowohl im Hauptprogramm als auch in der DLL einbinden.


delphijanka - Mo 31.05.10 16:17

@Tastaro

Danke für die Antwort.
Und wie greife ich auf die Werte globaler Variablen?


Boldar - Mo 31.05.10 16:50

Bei Konstanten reicht eine gemeinsame Unit oder ein include-File.
Bei Variablen geht das garnicht.
Du musst in dem Fall Werte (oder Pointer) mit Methoden übergeben, oder dein Konzept ändern.


delphijanka - Mi 02.06.10 08:55

Noch paar Fragen:

1) kann ich in einer Dll eine Klasse deklarieren, diese sogar von einer Klasse ableiten, die sich in einer anderen Dll befindet?

2) kann ich innerhalb einer dll auf Funktionen zugreifen, die sich in einer anderen Dll befinden?