Programmteil locken?

MedRamBO

Mitglied
Hallo

Ich beschäftige mich seit geraumer Zeit mit der Entwicklung eines eigenen Ingame chats.
Dazu leite ich die Begin- und Endscene Funktion des Spiels auf meine Funktion um wo ich
dann die Funktionalität und das GUI des Chats zeichne.
Das klappt auch alles sehr gut. Nun möchte ich auch noch einige Sachen als eien Art Info
anzeigen. Für Cod4 zum Beispiel die Stats des aktuellen Spiels. Dazu habe ich mir ein
struct angefertigt das ich dann dynamisch auf den richtigen Speicherbereich setzte.
Nun gibt es folgendes Problem.
Das Spiel greift über einen zweiten Thread auf die Variablen zu. Immer wenn mein Programm
und das Spiel gleichzeitig auf die besagte Programmstelle zugreift, kommt es zu einem
Crash des Spiels.

Ich habe gehört es gibt die Möglichkeit vllt. mit einem Mutex zu arbeiten. Ein Freund von
mir sagte es gibt Funktionen die bestimmte Speicherbereiche gegen diese Art von Zugriffen
zu schützen.

Am besten wäre es so:

-Ich markiere die Stelle irgentwie
-Greift das Spiel drauf zu warte ich
-Ist das Spiel fertig kann ich ran

Ich weiß nicht ob es in C++ / C eine solche Möglichkeit gibt.

Danke für alle Ideen,
Frank
 
Danke für die schnelle Antwort!

Woher weiß der Mutex denn welche Resourcen vom Spiel er locken muss?
Ich mein wenn ich in meinem Code:

CreateMutex()..
WaitForSingleObject().. {
auf EngineThread Funktionen zugreifen um den stats pointer zu bekommen
meine sachen zeichnen und die funktion des chats bereit stellen
}
ReleaseMutex()..

würde das so funktionieren?
Was passiert wenn der Enginethread gleichzeitig die selbe Funktion aufruft.
Es handelt sich ja um eine Funktion des Enginethreads, laggt das Spiel dann?
 
Zurück