Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Objekte in DLL s (https://www.delphipraxis.net/77104-objekte-dll-s.html)

testra 14. Sep 2006 16:39


Objekte in DLL s
 
Ich als delphi-anfänger habe mehrere klassen in units gesteckt,
die ich dann über uses miteinander verbinde.

das programm funktioniert einwandfrei, es rechnet nur und gibt was aus. für die weitere entwicklung habe ich mir gedacht, meine objekte in dlls auszulagern, sie dort im bedarfsfall zu pflegen und die funktionen dann von den unit aus aufzurufen.

gewollt, getan, jedoch sieht mann gleich dass das so nicht funktioniert. da ich in den parametern der objekte wiederum funtionen von anderen instanzen aufrufe, sind diese in den dlls unbekannt.

deshalb meine frage: geht es doch nicht mit dlls? kann man in den dlls keine pointer übergeben um auf die objekte zuzugreifen? kann mann evtl. so wie in den units auch, in den dlls die uses klausel benutzen um auf alle objekte zuzugreifen? muss der konstruktor sich in den units befinden, darf er auch in die dlls?

in den eigentlichen units wäre dann der funktionsaufruf ziemlich einfach und übersichtlich (so wie hier in dem tutorial beschrieben). wenn das nicht gehen würde, muss mann es nur über packages oder evtl. com machen habe ich gelesen?

jbg 14. Sep 2006 17:51

Re: Objekte in DLL s
 
Statt einer DLL solltest du dafür auf Packages zurückgreifen. Das sind ebenfalls DLLs mit dem Unterschied, dass der Compiler den nötigen interoperativen Code automatisch generiert, und die Dateierweiterung von .dll in .bpl umbenannt ist. Bei Packages kannst du dein Programm ohne eine Änderung weiter programmieren. Der Compiler entscheidet dann auf basises der "Mit Laufzeitpackage kompilieren" Liste, woher er die einzelnen Units nimmt.

testra 15. Sep 2006 13:25

Re: Objekte in DLL s
 
vielen Dank für die schnelle Antwort. :stupid:

Mittlerweile habe ich sehr viel über packages gelesen. einige borland dlls müssen dabei mitgeliefert werden etc. Ich habe auch schon mein programmchen mit packages erstellt. die exe ist dabei von 4 mb auf 1 mb geschrumpft, was für mich immernoch zu gross zu sein scheint. Ich habe noch in der exe die ganzen units drin, die per uses-klausel eingebunden werden. die die ich brauche habe ich nun drin gelassen, da objekte von diesen units in der ausführenden datei gebraucht werden. Daher meine vermutung, da diese units komplett durch die uses-klausels eingebunden werden, ist meine exe auch 1 mb gross. wie mache ich es, dass die units zwar eingebunden werden, jedoch nur die benötigten objekte importiert werden und nicht der gesamte code in der unit. ( exports stdcall im package-unit datei?, stdcall abstract aufrufe? )

Grüsse testra :wall:

testra 20. Sep 2006 10:13

Re: Objekte in DLL s
 
Schon mal die Hilfe von delphi7 gelesen? da wird das Handhaben von Packages ganz anders erläutert, wie bei einigen Foren. Da kann man schon ganz schön durcheinander kommen....


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