DLL

Alle Fragen um die Programmierung, die sich sonst nicht kategorisieren lassen. Von Makro bis Codeblock, von IF bis ENDIF

Moderator: Moderatoren

Benutzeravatar
Martin Altmann
Foren-Administrator
Foren-Administrator
Beiträge: 16517
Registriert: Fr, 23. Sep 2005 4:58
Wohnort: Berlin
Hat sich bedankt: 111 Mal
Danksagung erhalten: 48 Mal
Kontaktdaten:

Beitrag von Martin Altmann »

Hallo Tom,
für eine EXE habe ich doch keine LIB - oder verstehe ich da was in Deinem Posting nicht?
Du schreibst, dass Du bei einer EXE und 5 DLLs jeweils die 5 LIBs einbindest:
Bei dem Abschnitt für die EXE ist das OK, da gibt es ja 5 DLLs und somit 5 LIBs.
Aber bei einer DLL? Da gibt es doch nur eine EXE und vier weitere DLLs, also vier LIBs - oder wie?

Wie gesagt, ich mache das nicht, da ich nur DLLs von Alaska, 3pps oder anderen Fremdanbietern nutze...

Viele Grüße,
Martin
:grommit:
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/

Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9367
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 102 Mal
Danksagung erhalten: 361 Mal
Kontaktdaten:

Beitrag von Tom »

Hallo, Martin.

Woderechthasthasterecht. Es gibt in diesem Beispiel nur 5 LIBs, also binde ich in die EXE alle fünf ein und in alle 5 DLLs die jeweils 4 anderen. Und ich kann dann auch aus den DLLs Funktionen aus der EXE aufrufen.
Herzlich,
Tom
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12909
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 46 Mal

Beitrag von AUGE_OHR »

hi,

es gibt wohl scheinbar verschiedene Methoden eine DLL zu erzeugen.

Ich mache es so wie unter Cl*pper : Erst *.LIB mit *.DEF File erzeugen
und daraus dann die DLL. Wer schon den Source zu meinem WMPlayer
hat kann sich das ja mal ansehen den ich hab ja den MAIN Source und
die LIB anbei gegelegt so das man sich das selbst zusammenbauen kann.

gruss by OHR
Jimmy
Benutzeravatar
Rolf Ramacher
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 1930
Registriert: Do, 09. Nov 2006 10:33
Wohnort: Bergheim
Danksagung erhalten: 3 Mal
Kontaktdaten:

Beitrag von Rolf Ramacher »

Hi,

wann ist eine Erstellung einer DLL sinnvoll und welchen Vorteil bietet diese, anstatt die PRG's in die Xpj mit zu kompilieren.??
Gruß Rolf

Mitglied der Gruppe XUG-Cologne
www.xug-cologne.de
Benutzeravatar
Jan
Marvin
Marvin
Beiträge: 14658
Registriert: Fr, 23. Sep 2005 18:23
Wohnort: 49328 Melle
Hat sich bedankt: 21 Mal
Danksagung erhalten: 88 Mal
Kontaktdaten:

Beitrag von Jan »

So, an alle, die hierbei mitgeholfen haben:

Die Lösung steht. Der Tipps von Tom waren die Richtigen. In jeder DLL Verweise auf die anderen DLL im Projekt. ALLES, was aus den DLL heraus aufgerufen wird, ebenfalls in eine DLL packen.

Wobei VX das leider nicht selbständig verwaltet. Ich muß mich also um den Abschnitt "// $START-AUTODEPEND " doch noch manuell kümmern. Aber das geht in VX zum Glück auch relativ einfach.

Auch wenn das leider nicht bewirkt, daß Aufrufe aus der DLL auf Funktionen in der EXE gehen :? Das wär zu schön gewesen.

Danke für alle Hinweise, auch wenn sie ab und an etwas irreführend waren. Der Wille zu helfen zählt 8)

Jan
Zuletzt geändert von Jan am Mi, 21. Nov 2007 19:33, insgesamt 1-mal geändert.
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15697
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 66 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Beitrag von brandelh »

Rolf Ramacher hat geschrieben:Hi,
wann ist eine Erstellung einer DLL sinnvoll und welchen Vorteil bietet diese, anstatt die PRG's in die Xpj mit zu kompilieren.??
darüber streiten sich die Geister :D

CONTRA DLL: die einen sagen 'alles in eine EXE und ich habe keinen Ärger' (da gehöre ich auch dazu ;-) ) - das ist auch völlig OK, solange es kleine Programme sind (meine EXE sind unter 5 MB), allerdings soll es Programme geben, die mehrere 100 MB groß sind :?

PRO DLL: andere haben wirklich große Programme und anspruchsvolle Kunden ;-) ...
Das Hauptprogramm z.B. sieht bei allen gleich aus (EXE), aber nicht alle haben alle Module (DLL) gekauft. Das Hauptprogramm könnte also durch Nachinstallation von DLL Dateien Programmroutinen nachrüsten.
Oder aber ein Programm bietet 2 z.B. Kundenverwaltungen eine 'normale' und eine 'besondere' auch hier müsste nur die DLL getauscht werden.

Man könnte auch Festplattenspeicher sparen in dem man eigene Routinen in DLL auslagert und von mehreren Programmen heraus aufruft. Das hat dann allerdings zur Folge, dass immer alle EXE + DLL zusammen auf neue Versionen (Xbase++) gebracht werden müssen.

Meine Programme sind klein genug, dass ich damit keine Probleme habe (die Runtime DLLs sind ja ausgelagert), TOM würde mit seinem Riesenprogramm sicherlich kein Land sehen ohne DLL Aufteilugn - oder ?
Gruß
Hubert
Benutzeravatar
Jan
Marvin
Marvin
Beiträge: 14658
Registriert: Fr, 23. Sep 2005 18:23
Wohnort: 49328 Melle
Hat sich bedankt: 21 Mal
Danksagung erhalten: 88 Mal
Kontaktdaten:

Beitrag von Jan »

Ich selber habe die Aufteilung aus 2 Gründen gemacht:

1) Und das war die Idee, die ich von der DevCon mitgenommen hatte: Wenn irgendetwas im Code korrigiert wurde (Fehlerbehebung), oder etwas Neues dazugekommen ist, dann muß ich nicht die komplette Applikation per Mail verschicken, sondern nur die kleineren DLL aus dem entsprechenden Bereich.

2) Wie Hubert schon angesprochen hat: Wenn jemand die Extended Version haben möchte, dann ist das nicht ein komplett anderes Programm, der bekommt einfach eine zusätzliche DLL. Und das Programm erkennt, daß die da ist, und blendet dann die entsprechenden Menüpunkte ein.

Klar ließe sich auch trotzdem über diese beiden Punkte trefflich streiten. Aber für mich scheint da einfach die bessere Lösung zu sein. Auch wenn das Umrüsten mich und einige andere hier im Forum gestern einige Nerven gekostet hat. 8)
Jan
Antworten