Veröffentlicht 2. April 200718 j Hi Hab da ein Problem mit Shared Memory. Bin an einem bzw. mehreren Programm(en) zugange, welche miteinander über Shared Memory komunizieren sollen. Dies funktioniert auch. Allerdings will ich jetzt noch ein weiteren Shared Memory Bereich erstellen was aber nicht funktioniert. Beide Programme bekommen anscheindend nicht den gleichen Speicherbereich zugewiesen. Hier mal ein bisschen Quelltext: Hier der Server, welcher zuerst läuft und den Shared Memory Bereich erstellt: m_hMemory = CreateFileMapping((HANDLE)0xFFFFFFFF,NULL,PAGE_READWRITE,0,sizeof(s_Threshold),"SharedMemory"); m_ptrThreshold = (s_Threshold*)MapViewOfFile(m_hMemory,FILE_MAP_WRITE,0,0,sizeof(s_Threshold)); Und hier der Client, welcher sich zu dem Shared Memory Bereich "verbindet": m_hThreshold = OpenFileMapping(FILE_MAP_WRITE,FALSE,"SharedMemory"); m_ptrThreshold = (s_Threshold*)MapViewOfFile(m_hThreshold,FILE_MAP_WRITE,0,0,sizeof(s_Threshold)); Mein OS ist WinXP Pro und die IDE MSVS 6.0 Ist jemandem von euch bekannt, ob es unter Windows XP eine Begrenzung gibt, wieviele Shared Memory Bereiche es geben darf? Zur Info: In den anderen Programmen bzw. Programmteilen in denen ich das auch schon verwendet habe und das funktioniert, hab ich das genau so realisiert. Der Compiler zeigt auch keine Fehler oder Warnungen beim compilieren an. Schonmal danke im voraus
2. April 200718 j Der Compiler zeigt auch keine Fehler oder Warnungen beim compilieren an.Und was passiert zur Laufzeit? Sprich: was liefert CreateFileMapping / OpenFileMapping zurück?
2. April 200718 j Autor beides liefert einen Handle auf einen Speicherbereich zurück. Deswegen danach auch das MapViewOfFile(). Hab jetzt noch mal ein bisschen rumprobiert...geht jetzt auf einmal doch...der hatte komischerweise vorher andere Speicherbereiche zugewiesen bekommen... trotzdem danke
Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.