Announcement

Collapse
No announcement yet.

Wie kann ich Daten in eine DLL Schreiben und Lesen ?

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Wie kann ich Daten in eine DLL Schreiben und Lesen ?

    hi,

    ich möchte einen string in eine dll speichern bzw. lesen. dieser string soll aber auch nach dem beenden der verbindung (freelibrary) bzw. nach dem beenden des programmes in der dll gespeichert bleiben.

    ich hoffe, das mir jemand dabei helfe kann.
    danke im voraus.

  • #2
    Hallo,

    das wird so nicht gehen. Eine DLL kann nur in den Adressraum eines bestehenden Prozesses geladen werden und jeder Prozess wird unter Win32 in einem eigenen Adressraum ausgeführt. Somit "lebt" eine DLL nur solange wie der Prozess, der sie geladen hat (von Exoten wie Injekt-DLLs einmal abgesehen). Wenn das Programm neu gestartet wird, läuft es in jedem Fall in einem neuen Prozess, der keine Ahnung von Vorgänger hat. Es wird daher nichts anders übrigbleiben, als die Information irgendwo zwischenzuspeichern und beim nächsten Zugriff von dort wieder einzulesen: <br>
    a) Datei <br>
    b) Registry <br>
    c) Auslagerungsdatei (Memory-Mapped-File)<br>
    d) Shared-Property-Manager (MTS/COM+) <br>
    Falls das nicht in Frage kommt, könnte man auf einen Automation-Server (COM-Objekt als Local Server) zurückgreifen, der als EXE einen eigenen Prozess erhält und somit völlig unabhängig ist

    Comment


    • #3
      Windows bietet therortisch DLLs mit einem Shared Memory Bereich auszustatten (was ich unter VC6++ bereits gemacht habe). Darin kann man statische Daten unterbringen....

      Wie man dies allerdings unter Delphi macht ???? - kein plan... (siehe eigene gepostete Nachricht : DLL mit Shared Memory.

      Comment


      • #4
        Petr Vones hat auf Borlands Code Central ein Utility zum Antackern eines Shared Segments an eine Delphi DLL veroeffentlicht

        Comment

        Working...
        X