AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Class in DLL verwenden

Ein Thema von little_budda · begonnen am 16. Aug 2012 · letzter Beitrag vom 17. Aug 2012
 
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.782 Beiträge
 
Delphi 12 Athens
 
#2

AW: Class in DLL verwenden

  Alt 16. Aug 2012, 23:12
Muss ich da noch einen Konstruktor oder ähnliches aufrufen?
Warum klappt das in einer WinForms Anwendung?
Natürlich?

Willst du auf ein Objekt der Klasse zugreifen, dann mußt du erstmal ein instanziertes Objekt dieser Klasse erstellen, was man irdentwo mit Create macht.

Grundsätzlich ist die Vorgehensweise in DLL und EXE (VCL, NonVCL oder Konsole) die Selbe.

PS: Wenn du eine Form oder DataModul erstellst, dann kann man die VCL in einem VCL-Projekt (neuerdings auch FMX statt VCL) dazu bringen diese Instanzen "automatisch" erstellen zu lassen, welches standardmäßig "aktiviert" wird, wenn man diese Units automatisch generieren läßt.
siehe Projekt-Optionen > Formulare

bzw. siehe Projekt-Datei (DPR), denn da werden letztendlich diese Instanten erstellt. Siehe Application.CreateForm(...) , worin das Create aufgerufen wird.


Du mußt also letzendlich deine Instanz des DataModuls irgendwo "selbst" erstellen.
> über eine Initialize-Prozedur, welche deine EXE anfangs erstmal aufrufen muß, bevor sie due Funktionen der DLL nutzen darf
> im Initialization-Abschnitt einer Unit (in Finalization natürlich wieder freigeben)
> in einem Class-Constructor der Klasse (ist das "Gleiche" wie Initialization/Finalization)
> im Begin-End-Bereich des DLL-Projekts (DPR), aber dort fehlt dann die Freigabe-Stelle der Instanz



PS: Das automatische Generieren aller Forms/DataModule ist auch nicht immer das Wahre.
Stell dir mal vor Delphi oder MS Word würde alle Fenster immer gleich bei Programmstart erstellen, dann bräuchten diese ewig zum Starten und würden immer extrem Arbeitsspeicher belegen, was vorallem dann sinnlos ist, wenn etwas selten verwendet wird ... Darum erstellt man da viele Vormulare "manuell" erst dann, wenn sie benötigt werden und gibt sie danach gleich wieder frei.
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu (16. Aug 2012 um 23:15 Uhr)
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:44 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz