| Autor |
Beitrag |
Steve1024
      
Beiträge: 141
Windows 2K, XP, 7 & Server 2003 - 2008; Linux (Ubuntu, Fedora)
D7, D05, D06, D09, DXE
|
Verfasst: So 18.09.05 17:40
Hi,
ich habe mal ne Frage. Ich benutze MMF um eine Interprozesskommunikation zu betreiben. Allerdings habe ich das Problem, dass ich zwar unendlich viel in die MMF schreiben kann, aber nur max 4096 Bytes daraus lesen kann (auf einmal).
Bsp:
hab ich eine MMF, die ca 8000 Byte groß ist, dann kann ich diese nur auf zweimal lesen.
(k.A. ob der Code jetzt 100% stimmt, hab das aus dem Kopf geschrieben, aber es reicht,
um zu zeigen, wie es gemeint ist, hoff ich *g*)
also:
Delphi-Quelltext 1: 2: 3:
| vPtr := AllocMem(8000); ReadFile(vMMF,vPtr^,4000,vInt,nil); ReadFile(vMMF,Pointer(LongInt(vPtr)+4000)^,4000,vInt,nil); |
das funktioniert.
Das nicht:
Delphi-Quelltext 1: 2:
| vPtr := AllocMem(8000); ReadFile(vMMF,vPtr^,8000,vInt,nil); |
Ist das normal, oder hab ich da irgendwas falsch gemacht...???
Weiss eigentlich auch irgend jemand, wie man die größe der MMF herausfinden kann. Also wenn ich sie erstelle, weiss ich das ja... aber wenn ein anderes Programm diese öffnet, wie das das herausfinden??? GetFileSize oder so funktioniert nicht...
Moderiert von raziel: Delphi-Tags hinzugefügt.
|
|
BenBE
      
Beiträge: 8721
Erhaltene Danke: 191
Win95, Win98SE, Win2K, WinXP
D1S, D3S, D4S, D5E, D6E, D7E, D9PE, D10E, D12P, DXEP, L0.9\FPC2.0
|
Verfasst: So 18.09.05 18:33
Wie hast Du deine MMF angelegt. Poste mal den Source zum Anlegen. Ich glaub, da hast Du das Fenster zu klein gewählt.
_________________ Anyone who is capable of being elected president should on no account be allowed to do the job.
Ich code EdgeMonkey - In dubio pro Setting.
|
|
Steve1024 
      
Beiträge: 141
Windows 2K, XP, 7 & Server 2003 - 2008; Linux (Ubuntu, Fedora)
D7, D05, D06, D09, DXE
|
Verfasst: Di 20.09.05 10:22
Das seltsame ist ja, dass ich in diese Schreiben kann... nur eben das was ich geschrieben habe nicht wieder lesen...
Bei dem Programm, wo ich die MMF erstellt habe, kann ich sie aber lesen.. nur bei der mit OpenMMF nicht.
|
|
BenBE
      
Beiträge: 8721
Erhaltene Danke: 191
Win95, Win98SE, Win2K, WinXP
D1S, D3S, D4S, D5E, D6E, D7E, D9PE, D10E, D12P, DXEP, L0.9\FPC2.0
|
Verfasst: Di 20.09.05 12:31
Leider musste ich meine Glaskugel schon wieder mal zur Reparatur bringen (die Teile halten heute auch nicht mehr  ), weshalb etwas Source (wie in meinem vorigen Posting erwähnt) schön gewesen wäre. Nur die ReadFile-Anweisungen reichen dazu nicht (wobei ich das nicht über ReadFile, sondern Move machen würde, nur so nebenbei).
_________________ Anyone who is capable of being elected president should on no account be allowed to do the job.
Ich code EdgeMonkey - In dubio pro Setting.
|
|
|