Datenaustausch zwischen Programm-DLLs realisieren



  • Hallo an alle.
    Ich muss in meine Software eine sehr starke erweiterbarkeit über DLLs einbauen, was mich vor große Probleme stellt.
    Es geht um eine Art verwaltungessystem wie SAP. (kannen sicher die meinsten)

    Das Problem: wenn in einem Modul (das in einer DLL ist und eine GUI bereitstellt) ein Buton angeklickt wird, müssen einige standart Datenbank aktionen ausgeführt werden. Nachdem diese Abgearbeitet sind müssen jedoch weitere funktionen aus anderen modulen ausgeführt werden, die weitere aktionen an der Datenbank ausführen.
    (Vergleichbar mit einer Message Queue)

    Diese Queue Variiert jedoch. Jedes modul muss also die möglichkeit haben auch code Auszuführen, falls dies notwendig ist.
    Nur wie geb ich Dem anderen modul bescheid ?

    Ich hab da 2 Ansätze:

    1.) Das Modul in dem die "Grundaktionen" ausgelöst werden, sendet eine Message mit "SendMessage();" an die Hauptanwendung. Die Hauptanwendung schickt diese Message (mit den Parametern) an jedes Erweiterungsmodul.
    Die Module vergleichen die MessageIDs (mit einer festgelegten ID) und fürhren ggf. ihren Code aus.

    2.) Jedes modul registriert sich mit einer Liste von IDs (über die es informiert werden möchte) am Hauptprogramm. Wenn nun die "Grundaktionen" ausgeführt werden, dann Ruft das der Code nach den Grundaktionen eine Funktion aus der Hauptanwendung auf, die prüft (anhand der IDs), welche Module die Information noch brauchen und sendet einen Interrupt über eine Callback funktion in dem Modul. Dann müsste quasi wie beim Message-System (siehe 1.) für jede Transaktion eine Separate ID reserviert werden.

    Gibts da bessere möglichkeiten, oder ganz andere Techniken? Kann ich überhaupt separate Message-Handler in DLLs erstellen. (denk mal schon)
    Wenns unverständlich ist, bitte nochmal nachfragen.
    Danke !

    Beste Grüße, SevenSven


Anmelden zum Antworten