Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Wie Uses in Unit einer Library (dll) verwenden? (https://www.delphipraxis.net/101096-wie-uses-unit-einer-library-dll-verwenden.html)

SevenOfNine 8. Okt 2007 13:36


Wie Uses in Unit einer Library (dll) verwenden?
 
Der Titel ist vielleicht ein bisschen verwirrend, aber mir ist nichts besseres eingefallen :?

Nun zu meinem Verständnisproblem:

Ich habe eine Library "MeineLib" (dll) geschrieben und wollte nun Programmcode in eine Unit auslagern, damit das Programm übersichtlicher wird.
Da Proceduren und Funktionen in der Unit auf Variablen in der Library zugreifen, müssen der Unit hier ja irgendwie die Variablen der Library zugänglich gemacht werden. Folgendes in der Unit geht nicht, da keine "MeineLib.dcu"-Datei vorhanden ist:
Delphi-Quellcode:
implementation
uses MeineLib;
Wie macht man das denn bei einer Library?

Gruss
Seven

mkinzler 8. Okt 2007 13:42

Re: Wie Uses in Unit einer Library (dll) verwenden?
 
Du musst die Prozeduren/funktionen der DLL importieren.

Delphi-Quellcode:
procedure Bla external 'bladll.dll';

JamesTKirk 8. Okt 2007 13:49

Re: Wie Uses in Unit einer Library (dll) verwenden?
 
Sers mitnand!

@mkinzler: Ich glaube SevenOfNine meinte das anderst...

@SevenOfNine: AFAIK ist das ohne weiteres nicht möglich. Du könntest höchstens die Variablen in der Library in eine weitere Unit packen und diese Unit dann sowohl in der Library, als auch in der anderen Unit einbinden. Die Variablen sin dann für beide die gleichen.

(Sollte man es doch anderst machen könne, lasse ich mich gerne belehren :mrgreen: )

SevenOfNine 8. Okt 2007 13:59

Re: Wie Uses in Unit einer Library (dll) verwenden?
 
@JamesTKirk: Ich habe schon befürchtet, dass es nicht so ohne weiteres funktioniert. Aber das mit einer weiteren Unit, in der alle Variablen definiert sind, ist eine gute Idee. Ich werde das erst mal so machen.

Wenn jemand noch eine bessere Idee hat, kann er ruhig posten, aber mit der oben beschriebenen Lösung bin ich zufrieden :wink:

Danke
Seven

Apollonius 8. Okt 2007 14:29

Re: Wie Uses in Unit einer Library (dll) verwenden?
 
Es war schon in Pascal-Zeiten so, dass die Uses-Klausel auf Units beschränkt ist, denn gerade das ist der ursprüngliche Zweck von Units (das hat sich mit Delphi und VCL-Anwendungen etwas geändert): Gemeinsamen Code auslagern. Und Programme bearbeiten dann eine spezielles Problem, da wäre es unsinnig, in Units Programme einzubinden. Folglich musst du alles in eine Unit auslagern, wie schon beschrieben.

Bernhard Geyer 8. Okt 2007 14:39

Re: Wie Uses in Unit einer Library (dll) verwenden?
 
Zitat:

Zitat von SevenOfNine
@JamesTKirk: Ich habe schon befürchtet, dass es nicht so ohne weiteres funktioniert. Aber das mit einer weiteren Unit, in der alle Variablen definiert sind, ist eine gute Idee. Ich werde das erst mal so machen.

Globale Variablen - igitt. Und alles kreuz und quer darauf zukreifen lassen.

Aufteilen von Programmcode auf mehrer Units ist sinnvoll, aber dazu brauchst du dir nicht DLL's antun. Einfache Delphi-Units reichen erstmal

SevenOfNine 8. Okt 2007 14:51

Re: Wie Uses in Unit einer Library (dll) verwenden?
 
Zitat:

Zitat von Bernhard Geyer
Globale Variablen - igitt. Und alles kreuz und quer darauf zukreifen lassen.
Aufteilen von Programmcode auf mehrer Units ist sinnvoll, aber dazu brauchst du dir nicht DLL's antun. Einfache Delphi-Units reichen erstmal

Ich muss mir leider DLLs antun, da es sich um ein PluginSystem handelt. Die ersten Plugins schreibe ich selber, damit man ein paar Beispiele hat.

Bernhard Geyer 8. Okt 2007 14:54

Re: Wie Uses in Unit einer Library (dll) verwenden?
 
Zitat:

Zitat von SevenOfNine
Ich muss mir leider DLLs antun, da es sich um ein PluginSystem handelt. Die ersten Plugins schreibe ich selber, damit man ein paar Beispiele hat.

Dann sind ein paar Fragen vorher nötig:

- Werden Plugins nur Firmenintern programmiert?
- Welche Programmiersprachen können vorkommen?
- Installation erlaubt bzw. nicht verboten?
- Fertiges Framemwork erlaubt?


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