Einzelnen Beitrag anzeigen

Aviator

Registriert seit: 3. Jun 2010
1.611 Beiträge
 
Delphi 10.3 Rio
 
#1

DLL Programmierung - Wie übergebe ich am sinnvollsten meine Daten?

  Alt 30. Sep 2016, 16:07
Hallo zusammen,

in letzter Zeit häufen sich die Threads die ich selber öffne.

Konkret geht es darum, dass ich gerade dabei bin ein komplett neues Projekt zu beginnen. In einem anderen Thread habe ich bereits geschrieben, dass es sich um ein selbstentwickeltes DMS handelt.

Ich möchte mein Programm in ein paar Teile aufsplitten und das ganze dann in eine DLL auslagern. Das ganze wird nicht nur aus Gründen der (hoffentlich) einfacheren Updatefähigkeit so gemacht sondern auch, weil ein anderes Programm auf die Daten meines DMS zugreifen soll.

Mein Problem besteht jetzt darin das ich nicht weiß, wie ich denn die Daten die meine DLL beschaffen soll (von einem SQL-Server) in meine bzw. die Fremde Anwendung "rüberreichen" kann/soll. Das ich hierzu ein Interface verwenden sollte ist schonmal klar. Für einen anderen einfacheren Fall habe ich auch bereits. Die Frage ist nur, wie baue ich das richtig auf. Das Problem ist ja schonmal die Übergabe von String die dann als PChar übergeben und dann in der Anwendung einem String zugewiesen werden müssen. Das ist so hoffentlich korrekt.

Um mal ein konkretes Beispiel zu nennen:
  • Meine Anwendung (das DMS) legt diverse Benutzer in einer Datenbank an
  • Mein Programm muss beim Start von einer DLL diese Benutzer wieder zurückerhalten um eine Auswahlform zu erzeugen bei der der Nutzer wählen kann, mit welchem Benutzernamen er sich anmelden will
  • Die andere fremde Anwendung soll das ebenfalls können

Ein Benutzerobjekt besteht aktuell aus den folgenden Teilen:
  • Benutzername
  • Vorname
  • Nachname
  • evtl. verschlüsseltes Passwort (wird aber wahrscheinlich in der DLL gegengeprüft und somit nicht an die eigene bzw. fremde Anwendung weitergegeben
  • E-Mail Adresse
  • evtl. Berechtigungen in Form eines Int64 Wertes


Wie muss ich jetzt mein Interface respektive meine DLL aufbauen, damit ich solche Informationen zurückgeben kann? Ein Objekt zwischen Anwendung und DLL zu tauschen ist ja nicht optimal habe ich mal hier gelesen. Wie funktioniert so etwas richtig und auf was muss ich achten? Bin für jeden Tipp dankbar.
  Mit Zitat antworten Zitat