Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.063 Beiträge
 
Delphi 12 Athens
 
#8

AW: Eindeutiger Callback bei mehreren Instanzen des selben Programms

  Alt 27. Okt 2011, 21:06
Nur weil der Programmcode der DLL in einer MMF liegt, ist sie dennoch nicht "funktional" geshared, denn der sonstige arbeitspeicher bleibt dennoch getrennt.

PS: DLL und EXE sind sowieso schon imm er (mindestens seit WinNT) auf sowas ähnlichen, wie eine MMF verteilt, damit Windows sich den RAM erspart, da diese dann nur einmal in den speicher geladen werden muß.
Allerdings mit der option CopyOnWrite ... also wenn eine anwendung was ändert, wird der Speicher kopiert, die anwendung bekommt das eigene Stück RAM und bei den anderen bleibt es unverändert.


So, aber da dennoch der Speicher der restlichen Anwendungen getrennt ist, selbst wenn man die DLL via MMF überall reingequetscht hat, wird sie dennoch im Kontext der Anwendungen ausgeführt
und "externe" Zeiger sind bleiben nur im entsprechenden Programmkontext gültig.



Der einzige Weg für sowas ist z.B. ein OutOfProcess-COM-Server.
Dieser läuft in einem getrennten Prozess (meist einem DLL-Host), die vielen Programme greifen via COM-Lib auf dessen Funktionen zu, aber da die Funktionen in dem gemeinsam genutzen DLL-Host laufen, haben alle wirklich mit der selben DLL zu zun.



PS: Botschaften (Messages) werden ja an die anderen Prozesse gesendet und dann auch dort drüben verarbeitet.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat