Ergebnis 1 bis 4 von 4

Thema: DLL im Speicher

  1. #1
    thodi
    Guest

    DLL im Speicher

    Wenn zwei Programme die gleiche DLL laden, wie oft ist die DLL dann im Speicher? Sowohl im impliziten (Linken gegen .lib) wie auch im expliziten (LoadLibrary()) Fall.

  2. #2
    Moderator
    Registriert seit
    Jan 2001
    Beiträge
    419
    Renommee
    55
    DLLs werden immer nur einmal geladen.

    Allerdings legt jede neue Instanz ihren Stack im Speicherbereich des aufrufenden Prozesses an. Alles was mit Speicherzugriff zu tun hat läuft also völlig getrennt ab.

    Das gilt für statisches und dynamisches Linken.

    mfg
    Work smarter, not longer

  3. #3
    thodi
    Guest
    Aha, also 1*Code, n*Stack. Danke erstmal. Was ist mit (DLL-)globalen Variablen innerhalb der DLL? Kann man sowas irgendwo nachlesen oder weiss man das einfach?

  4. #4
    Moderator
    Registriert seit
    Jan 2001
    Beiträge
    419
    Renommee
    55
    Die globalen Variablen sind auch getrennt. Windows (NT) verwendet vollkommene Speichertrennung nach dem Schutzprinzip, dass jeder Prozess völlig isoliert behandelt wird.

    Ich hab das aus einem Programmiererhandbuch von Microsoft Press. Geschrieben von Jeffrey Richter, der glaub ich ganz wesentlich bei der Entwicklung des Win32 Modells beteiligt war. Also aus erster Hand. Vollständig implementiert ist das Modell aber nur in den NT Versionen von Windows.

    Und: Wenn du Daten zwischen Prozessen austauschen willst, eignen sich bei wirklich kleinen Mengen einfach Messages, ansonsten wirst du memory mapped files oä Lösungen einsetzen müssen.

    Unter Win16 also bis Windows 3 oder so war der Datenaustausch zwischen Prozessen über die globalen Variablen möglich, falls du darauf hinaus willst. Damals konnte man zB einen Zähler in der DLL einbauen, der Inkrementiert wurde wenn DLL geladen wurde. Dann war ganz leicht feststellbar wie viele Prozesse die DLL einsetzen. Das würde auf Win32 Systemen immer eine eins bringen. Hier helfen zB Semaphoren aus. Alles erklärt in oben besagtem Buch.

    mfg
    Work smarter, not longer

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Ähnliche Themen

  1. Problem HD-Speicher Win(95)
    Von TheOverfiend im Forum Windows
    Antworten: 9
    Letzter Beitrag: 24.02.2004, 13:47
  2. Twinx Speicher
    Von neon im Forum Hardware
    Antworten: 4
    Letzter Beitrag: 09.12.2003, 22:11
  3. dynamischer speicher
    Von Angelus im Forum C / C++
    Antworten: 6
    Letzter Beitrag: 01.05.2003, 19:21
  4. SMS-Speicher auf der SIM vergrößern
    Von PsychoSchlumpf im Forum (Mobile) Kommunikation
    Antworten: 6
    Letzter Beitrag: 25.10.2002, 17:15
  5. DOS: 3 MB EMS Speicher!
    Von das_opfer im Forum Technisches Off-Topic
    Antworten: 9
    Letzter Beitrag: 13.02.2002, 15:01

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •