.dll als Interface?????????



  • Hallo,

    ich habe eine generelle Frage zu einer DLL.

    Kann ich eine DLL als Interface zwischen zwei laufenden Programmen benutzten?

    Geht es das beide Programme gleichzeitig auf die DLL zugreifem und aus verschieden Funktionen lesen, bzw. in sie hineinschreiben?

    Beispiel:

    Ich habe zwei Programme:
    Prog1
    Prog2

    und zwei Funktionen die sich in der DLL befinden:
    funk1
    funk2

    Scenario:
    Prog1 schreibt einen Wert in funk1. Prog2 ließt aus funk1 und berechnet irgendwas, schreibt die Antwort dann in funk2.
    Daraufhin ließt Prog1 aus funk2.

    -> Ist so etwas in der Art möglich?

    -> Kann man eine DLL als Schnittstelle zwischen zwei Programmen benutzten?

    -> Wie könnte man so etwas realisieren?

    -> Geht das vielleicht mir "fork" und "sleep" (ich bin mir nicht ganz sicher ob ich dies zwei Begriffe schon einmal in diesem Zusammenhang gehört habe)

    Wenn das nicht geht, wie könnte man so etwas ohne DLL machen?



  • Wenn du gut synchronisierst und shared Sections für die Variablen verwendest könnte das funktionieren.
    Sockets sollten imo aber sinnvoller sein

    Greetz



  • Manuel schrieb:

    .
    Sockets sollten imo aber sinnvoller sein

    Greetz

    Was heißt das????????

    was sind "Sockets" und was ist "imo" ????????ß

    imo = immer?????????ßß



  • Für die verschiedenen Arten der Inter-Prozess-Kommunikatin siehe:
    http://msdn.microsoft.com/library/en-us/ipc/base/interprocess_communications.asp

    Das schnellste ist Shared-Memory (bzw. Memory-Mapped-Files).
    Bei einer DLL kannst Du bestimmten Datenbreiche "shared" machen, was der gleiche Effekt ist wie Memory-Mapped-Files.



  • IMO = in my opinion - meiner Meinung nach

    .. und die Erklärungen der einzelnen Mechanismen kannst du der Seite von Jochen entnehmen 😉

    Greetz



  • Manuel schrieb:

    IMO = in my opinion - meiner Meinung nach

    Bescheidene Menschen sagen: IMHO 😉



  • ok danke,...ich werde es mir einmal durchlesen



  • Jochen Kalmbach schrieb:

    Manuel schrieb:

    IMO = in my opinion - meiner Meinung nach

    Bescheidene Menschen sagen: IMHO 😉

    Bescheidene Menschen ... Wer sagt, dass ich zu denen gehöre? 😉

    Nee. Du hast Recht (wie (leider ;)) viel zu oft ^^). Bin aber meist zu faul den Buchstaben zu schreiben.

    Greetz 😃



  • HEY!!!!!!!!

    Zurück zu dem THEMA,.........ich schlage for IHR richtet ein Thread zum Thema "IMO" ein.

    Hier aber sollte es um eine DLL gehen!!!!!!!!

    😉



  • Was für Fragen sind denn noch offen?



  • die werden schon noch kommen 😉

    schließlich muss ich mich erst einmal durch alles durcharbeiten. Aber jetzt werde ich ein bierchen trinken gehen 😉

    aaaaaaaaah apopo Frage,.........was hat es mit fork und sleep auf sich? Was ist das?



  • gramboler schrieb:

    was hat es mit fork und sleep auf sich?

    fork gibt es nur bei diversen *nixen, nicht aber bei Windows (damals kannten die noch keine Threads und haben IMHO etwas rumgepfuscht).
    sleep wartet einfach die angegebene Zeit.



  • Jochen Kalmbach schrieb:

    Das schnellste ist Shared-Memory (bzw. Memory-Mapped-Files).
    Bei einer DLL kannst Du bestimmten Datenbreiche "shared" machen, was der gleiche Effekt ist wie Memory-Mapped-Files.

    Um Himmels Willen! Shared Memory ist das personifizierte Böse, da es sich nicht über eine ACL schützen lässt. Das kannst Du doch mit File Mapping nicht vergleichen.

    Wer Shared Memory benutzt, macht sich auch die Hose mit der Kneifzange zu!



  • Jochen Kalmbach schrieb:

    Bescheidene Menschen sagen: IMHO 😉

    Das machen allenfalls Menschen mit Komplexen. Entweder habe ich eine Meinung oder ich habe sie nicht, Bescheidenheit hat da absolut nichts zu suchen. IMO.



  • Gästchen schrieb:

    Um Himmels Willen! Shared Memory ist das personifizierte Böse, da es sich nicht über eine ACL schützen lässt. Das kannst Du doch mit File Mapping nicht vergleichen.

    Was ist denn der Unterschied zwischen "Shared Memory" und "Memory Mapped Files"?



  • Jochen Kalmbach schrieb:

    Was ist denn der Unterschied zwischen "Shared Memory" und "Memory Mapped Files"?

    Du willst mich verscheissern, gell? Außerdem habe ich den schlimmsten Unterschied zwischen #pragma data_seg und dem echten Kernel Objekt bereits herausgestellt: Letzteres lässt sich mit einer ACL schützen.

    Und jetzt zeigst Du mir bitte, wie Du verhinderst, daß auf ein #pragma data_seg absolut jeder uneingeschränkten Zugriff bekommt.

    Und ja, es ist mir bekannt, daß das #pragma allein nicht reicht und das ich dem Linker noch weitere Anweisung zu geben habe.



  • Vielleicht haben wir auch nur aneinander verbeigeredet... bzw. ich habe mich nicht eindeutig ausgedrückt...
    Ich empfehle prinzipiell für schnelle Dinge immer Memory-Mapped-Files (welches in der Doku auch "Shared memmory" genannt wird, siehe
    http://msdn.microsoft.com/library/en-us/fileio/fs/creating_named_shared_memory.asp
    )
    Das #pragma... hab ich nur noch so erwähnt... will ich aber nicht empfehlen 😉



  • Jochen Kalmbach schrieb:

    Das #pragma... hab ich nur noch so erwähnt... will ich aber nicht empfehlen 😉

    Dann bin ich beruhigt. Denn nachdem Du "Bei einer DLL kannst Du bestimmten Datenbreiche "shared" machen, was der gleiche Effekt ist wie Memory-Mapped-Files." schrubst, bin ich beinahe umgefallen. Das ist nämlich nicht der gleiche Effekt.

    Aber wie gesagt, ich habe mich ja wieder beruhigt. 🙂


Anmelden zum Antworten