Modularisierung aber wie?
-
Hallo!
Zu meinem Problem. Ich hab eine Software die ich gerne Modularisieren möchte,
das heisst, es soll in den Einstellungen z.B. möglich sein ein bestimmtes Programmfeature nachzuladen. Mein Programm ruft Daten von einem Server ab, filtert diese und exportiert sie wieder. Nun soll es z.b. möglich sein das ich meinen Kunden nachträglich einen Filter zukommen lasse, z.B. in Form einer Datei, die dann in den Einstellungen diese laden und benutzen können. Doch wie kann ich sowas realisieren?In form von dll´s? Oder wie kann ich das machen? Und wenn ja, dann lad ich ne DLL und woher soll mein Stammprogramm dann wissen welche Klasse oder Methode es in der DLL ansprechen mussß?
Gibts da evt Beispiele dazu?
Gruß
Maruu
PS: Ich arbeite mit dem BCB 6 falls das hilft
-
Du musst jede .dll gleich aufbauen. Ich würde es so machen: Eine Base-Klasse von der du eine Klasse in der Dll ableitest. Dann machts eine Funktion in die dll die dir eine Instanz der abgeleiteten Klasse erstellt und das als Base-Pointer übergibt. Dann kannst du im Programm die Klasse als Base benutzen. Nicht vergessen: Speicher wieder irgendwo freigeben. Am Anfang liest einfach alle dll im Verzeichnis ein, überprüft ob sie eine init Funktion beinhaltet und lädst sie ggf.
Hoffe das konnte bischen helfen

-
Jap so in der Richtung hab ich mir das gedacht. Also schau ich in dem Verzeichnis nach welche dll´s da drin liegen hol mir deren Dateiname, und binde diese DLL´s ein. In der DLL muss jede DLL eine bestimmte Funktion enthalten z.B. initialzieDLL(...) die mir meine benötigten Funktionen und Parameter an mein Hauptprogramm anmeldet/übergibt.
Das Problem ist ja das ich dann eine Funktion machen muss und keine Klasse.
Weil von der Klasse weiß ich ja den Namen nicht, außer dieser heisst immer gleich, dann könnte ich direkt auf die Klasse und deren Methoden zugreifen?Lieg ich da so ungefähr richtig?
MFG
Maruu
-
DU kannst ueber ne Dll schnittstelle auch klassen definieren ...
Auf grund von kompatibilitaetsproblemen rat ich dir davon aber eher ab. Sei denn die sache macht das Problem sehr viel einfacher, und du kannst garantieren, dass keiner jemals module mit nem anderen kompiler bauen will ...
Also besser iss alles in plain C zu halten wenn mit raw dlls arbeitest (kannst ja wrapperklassen dann dazu schreiben) oder aufn konzept mit mehr OOP umzusteigen , COM / Corba z.B. damit kann man auch modular schreiben ... hat aber natuerlich auch nachteile ...
Ciao ...