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;
}
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?
Mobile version