Gemeinsamer Speicher in DLLsC++

Programme in C++. Entwicklerforum
Anonymous
 Gemeinsamer Speicher in DLLs

Post by Anonymous »

Wie funktioniert die Speicherfreigabe in DLLs?

Wenn eine DLL an einen Prozess angehängt wird, verwendet sie dieselben Speicheradressen wie der Prozess. Nehmen wir an, wir haben die folgende Funktion in der DLL:

Code: Select all

int * data = 0;
int foo()
{
if (!data) data = new int(random());
return *data;
}
Wenn Prozess A diese Funktion aufruft, erstellt er ein neues Objekt (int) und gibt seinen Wert zurück.
Aber jetzt hängt Prozess B diese DLL an. Es ruft foo() auf, aber ich verstehe nicht, wie es funktionieren soll, da data in Bearbeitung ist. Ein Speicherplatz. Wie könnte B es direkt nutzen?

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post