Ik was bezig met memory mapped files. Ik heb een DLL gemaakt die een de Nu heb ik de volgende code:
Dit staat onder de eerste knop en schrijft 'hallo' naar een memory mapped file.
Om het er weer uit te lezen gebruik ik de volgende code:
Op zich werkt het perfect binnen hetzelfde programma, alleen zodra ik het programma 2x opstart en probeer onderling data te versturen door MMF (door de ene de MMF aan te laten maken, en de andere deze MMF te laten openen), dan krijg ik die 'hallo' niet op mijn scherm (Ik krijg een '(' te zien, dus p2 point wel naar een waarde).
Ik heb ookal geprobeerd om alle MMF functies in een DLL te schrijven, alleen dan krijg ik binnen dezelfde applicatie ook gewoon de goede waarde. Ik kan alleen niet tussen verschillende applicaties data verzenden.
dus.. Iemand suggesties?
code:
1
2
| MMF1handle, MMF2handle : cardinal; p1,p2 : ^string; |
Dit staat onder de eerste knop en schrijft 'hallo' naar een memory mapped file.
code:
1
2
3
| MMFHandle1 := CreateFileMapping($FFFFFFFF,nil,PAGE_READWRITE,0,SizeOf('hallo'), 'test');
p1 := MapViewOfFile(MMFHandle1, FILE_MAP_WRITE,0,0,0);
p1^ := 'hallo'; |
Om het er weer uit te lezen gebruik ik de volgende code:
code:
1
2
3
| MMFHandle2 := OpenFileMapping(PAGE_READWRITE, true, 'test'); p2 := MapViewOfFile(MMFHandle2, FILE_MAP_READ,0,0,0); showmessage(p2^); |
Op zich werkt het perfect binnen hetzelfde programma, alleen zodra ik het programma 2x opstart en probeer onderling data te versturen door MMF (door de ene de MMF aan te laten maken, en de andere deze MMF te laten openen), dan krijg ik die 'hallo' niet op mijn scherm (Ik krijg een '(' te zien, dus p2 point wel naar een waarde).
Ik heb ookal geprobeerd om alle MMF functies in een DLL te schrijven, alleen dan krijg ik binnen dezelfde applicatie ook gewoon de goede waarde. Ik kan alleen niet tussen verschillende applicaties data verzenden.
dus.. Iemand suggesties?