Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Projekt in DLL wandeln. Frage zur Höh des Aufwands (https://www.delphipraxis.net/68563-projekt-dll-wandeln-frage-zur-hoeh-des-aufwands.html)

McMorton 1. Mai 2006 20:16


Projekt in DLL wandeln. Frage zur Höh des Aufwands
 
Hallo

Ist es möglich ein bestehendes Projekt (viele Units, ohne Form) in eine DLL zu wandeln?
Die Dll sollte dann auch z.B. unter Visaul Basic laufen können.

Das Projekt hat momentan 2 Klassen, die nach aussen sichtbar sind (darunter befinden sich noch ca. 100 andere).
Hier werden Strings und Objekte übergeben bzw. zurückgegeben.

Das ganze in ein Package zu packen funktioniert. Aber interessant währe halt eine universelle Dll.

Ich wollte erstmal nachfragen, ob das ohne allzu großen Aufwand überhaupt machbar ist, bevor ich mich in das Thema einarbeite.

Danke schonmal für eure Antworten

mkinzler 1. Mai 2006 20:19

Re: Projekt in DLL wandeln. Frage zur Höh des Aufwands
 
Da das Interface dann nur aus 2 Klassen besteht, ist das grundsätzlich möglich. es kommt natürlisch auch auf die Anzahl der Eigenschaften/Methoden an, welche übergeben können werden müssen.

Bernhard Geyer 1. Mai 2006 20:35

Re: Projekt in DLL wandeln. Frage zur Höh des Aufwands
 
Zitat:

Zitat von McMorton
Ist es möglich ein bestehendes Projekt (viele Units, ohne Form) in eine DLL zu wandeln?
Die Dll sollte dann auch z.B. unter Visaul Basic laufen können.

Das Projekt hat momentan 2 Klassen, die nach aussen sichtbar sind (darunter befinden sich noch ca. 100 andere).
Hier werden Strings und Objekte übergeben bzw. zurückgegeben.

Das ganze in ein Package zu packen funktioniert. Aber interessant währe halt eine universelle Dll.

Objekte aus DLL's zu exportieren ist keine gute Idee. Entweder Handles welche per Mapping Objekte referenzieren und eine C-Schnittstelle bereitstellen oder per COM ein Automatisierungsobjekt mit Interfaces bereitstellen. Wird zwar auch eine DLL aber eine per COM anzusprechende.

McMorton 1. Mai 2006 21:24

Re: Projekt in DLL wandeln. Frage zur Höh des Aufwands
 
Hier mal ein Beispiel wie das nach aussen sichtbare Objekt aussieht (das ganze ist im Prinzip ein Indy-Server)

Es gibt ungefähr noch 30 weitere Properties (habe die wegen der Übersichtlichkeit weggelassen), die ein spezielles Objekt zurückgeben (TmyEmpfangenEvent1, TmyEmpfangenEvent2, ...)

Delphi-Quellcode:
 TKommunikation = class(TObject)
  private
    FPort: Integer;
    FIp: String;
    FOnError: TmyErrorEvent;  
    FOnEmpfangen: TmyEmpfangenEvent;
    procedure StartServer(Status: boolean);
    procedure Senden(aString: String);  
  public
    Property Port: Integer read FPort write FPort;
    Property IP: String read FIp write FIp;  
    Property Starten: boolean write StartServer;
    Property SendeString: String write Senden;
    Property OnError: TmyErrorEvent read FOnError write FOnError;
    Property OnEmpfangen: TmyEmpfangenEvent read FOnEmpfangen write FOnEmpfangen;  
    constructor Create;
    destructor Destroy; override;
  end;
Wie umfangreich währe es, das in einer DLL zu machen?
Handels und Mappen von Objekten sagt mir erstmal nichts.
Mir gehts erstmal nur darum den Aufwand abzuschätzen.
Wenn ich nähmlich alles umschreiben muss, dann lass ich es lieber sein (währe nur ein nice-to-have-Feature)

Bernhard Geyer 1. Mai 2006 21:30

Re: Projekt in DLL wandeln. Frage zur Höh des Aufwands
 
Zitat:

Zitat von McMorton
Es gibt ungefähr noch 30 weitere Properties (habe die wegen der Übersichtlichkeit weggelassen), die ein spezielles Objekt zurückgeben (TmyEmpfangenEvent1, TmyEmpfangenEvent2, ...)

Events kommen auch noch dazu?
Dann vergiss die "universelle" DLL und lese dich erst mal ins Thema Automatisierung + COM ein.

mkinzler 1. Mai 2006 21:32

Re: Projekt in DLL wandeln. Frage zur Höh des Aufwands
 
Grundsätzlich mußt du für jede Methode der Klasse eine c-kompatible Funktion erzeugen, da in einer Dll keine Delphi-Objekte übergeben werden können. In deinem fall sind es ja nurPproperties und keine Methoden.

McMorton 2. Mai 2006 21:03

Re: Projekt in DLL wandeln. Frage zur Höh des Aufwands
 
OK.
Danke für eure Mühe.
Ich werd mir das ganze wohl schenken. Die Einarbeitung würde zuviel Zeit ziehen.

Packe es dann halt nur als Package


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