Ereignis an Plugin (DLL) schicken



  • Hi Leute.

    Ich hab hier n schier unlösbares Problem 🙂

    Ich habe ein Programm für das ich ein Plugin geschrieben habe. Das Plugin wird in Form einer DLL von der Hostanwendung geladen. Nun muss ich aber von einer anderen Anwendung aus dieser Plugin-DLL ein Ereignis mitteilen. Wie erreich ich soetwas nun am besten.

    Fogendes waren meine Ansätze:

    -Windows Messages -> fallen ja weg da meine DLL kein window hat an das ich etwas schicken könnte.

    -DateiSystem -> Das ist auch meine akutelle Lösung. Die Anwendung schreibt in eine INI Datei, welche von der DLL immer wieder ausgelesen wird. Die lösung ist halt wahrlich nicht schön.

    Hat jemand eine andere Idee wie ich soetwas lösen könnte.

    MfG Jens



  • Pipes könnten eventuell intressant sein. Ansonsten bist du ja per CreateFileMapping auch noch recht gut bedient.

    greetz KN4CK3R



  • Jensiboy schrieb:

    Windows Messages -> fallen ja weg da meine DLL kein window hat an das ich etwas schicken könnte.

    Windows-DLLs kann man aber leicht ein Fenster verpassen, ohne die sichtbare Darstellung versteht sich. Dieses Fenster kann dann sehr wohl Messages von den Anwendungen empfangen und genauso welche zurücksenden. Den Austausch der HWND-Handles regelt man über eine DLL-Funktion. Geht sehr einfach und zuverlässig.

    Das ganze lässt sich auch zur Inter-Process-Communication IPC erweitern.

    SendMessage(HWND,MSG,WPARAM,LPARAM) wird dann so verwendet:
    HWND Zielfenster (DLL oder Anwendung)
    MSG benutzerdefinierte Nachricht
    WPARAM irgendeine Ident-Bezeichnung
    LPARAM der Inhalt der Nachricht

    Alle anderen Lösungen - wie Filemapping und Dateien - sind aufwendiger und langsamer. Zudem erfordern sie meist Schutzmassnahmen gegen Zugriffskonflikte.

    Wenn du nicht klar kommst, schicke mir eine mail. Ich kann dir dann ein Beispiel schicken.

    Ansonsten wäre dieses Thema bei WinApi besser aufgehoben!



  • Dieser Thread wurde von Moderator/in akari aus dem Forum VCL (C++ Builder) in das Forum WinAPI verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.


Anmelden zum Antworten