![]() |
Gleicher Speicherbereich für 2 Unterschiedliche Anwendungen
Hallo,
habe folgendes Problem: ich habe 2 Anwendungen welche auf einen gemeinsamen Speicherbereich zugreifen sollen. Die eine Anwendung wird mit CreateProcess aus der anderen gestartet. Der Speicher wird mit: Handle := GloballAlloc(gmem_share,size); m_pSp := GlobalLock(handle); im Hauptprogramm allokiert. Im aufzurufenden Programm wird der Speicher: m_pSp := GlobalLock(Handle) allokiert, wobei das Handle als Parameter über CreateProcess übergeben wird. Wenn ich mir die StartAdressen anzeigen lasse, stimmen Sie überein. Aber wenn ich in den einen Programm einen Wert ändere, so wird der im anderen Programm nicht geändert. Was ist an dieser Lösung nicht richtig oder muss man es ganz anders angehen. Vielen Dank im Vorraus :( |
GlobalAlloc stammt noch aus Win16-Bit Zeiten. Diese Funktion ist unter Win32 gleichbedeutend mit LocalAlloc. Sie reserviert also keinen Prozess übergreifenden Speicher mehr, sondern privaten Prozessspeicher.
Du musst für IPC (Inter Process Communication) Mechanismen benutzen. Hier eignet sich die Funktion der MMF bepaart mit einem Mutex. Eine andere Möglichkeit sind NamedPipes oder Mailslots. |
Oder du injezierst eine DLL in den anderen Prozess.
|
Zitat:
|
Hat eine DLL nicht Zugriff auf beide Speicherbereiche?
|
Und wieso muss man dann sine Daten aus der Hook-Funktion per WM_COPYDATA oder MMFs, Pipes, Mailslots an die Hauptanwendung liefern?
Das macht man wohl um sein Programmierkönnen zu beweisen. |
Hallo , erstmal vielen Dank für die Antworten habe aber noch zwei Fragen
: Was sind oder ist MMF. Und zweitens bsteht auch die folgende Möglichkeit, dass ich an das aufzurufende Programm einen Zeiger übergebe und mit diesen auf den Speicherbereich zugreifen kann. Vielen Dank im Vorraus :) |
Zitat:
Zitat:
Ich will hier aber keinen Kurs in Speicherverwaltung von Windows geben. Dazu gibt es gute Bücher und auch das PSDK. Also Suchtipp: "virtual memory" |
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:07 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz