Hi,
ich hab folgendes Problem: ich möchte zwischen zwei Programmen (2 Exen auf ein und demselben Windows PC) größere Datenmengen austauschen. Dazu benutze ich Shared-Memory. Damit nicht beide gleichzeitig auf den Shared Mem zugreifen benutze ich Mutexe. Ich lege also in jeder EXE das gleiche Mutex wie folgt an:
Master-EXE:
MyMutexHandle := CreateMutex(Nil, TRUE, PChar(UniqueName+'Mutex'));
Slave-EXE:
MyMutexHandle := CreateMutex(Nil, FALSE, PChar(UniqueName+'Mutex'));
(statt dessen hab ichs beim Slave auch mit "MyMutexHandle := OpenMutex(MUTEX_ALL_ACCESS , TRUE, PChar(UniqueName+'Mutex'));" probiert, brachte nix...
Das seltsame: ich kriege für MyMutexHandle unterschiedliche Werte. In der Master EXE z.B. 1696, in der Slave Exe 1752. Beim Kommando: WaitForSingleObject(MyMutexHandle, FTimeOutMs); gibts dann auch immer TimeOuts.
Wenn ich frecherweise mit dem Debugger den Wert für ein Handle auf den Wert des anderen setze, klappt alles!
Übrigens: am String für den Mutexnamen liegt's definitiv nicht!
Hat einer einen Gedanken, was ich tun kann?
Im voraus schon mal besten Dank!
Matthias