Autor Beitrag
Steve1024
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 141

Windows 2K, XP, 7 & Server 2003 - 2008; Linux (Ubuntu, Fedora)
D7, D05, D06, D09, DXE
BeitragVerfasst: 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:
ausblenden 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:
ausblenden 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 user profile iconraziel: Delphi-Tags hinzugefügt.
BenBE
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 8721
Erhaltene Danke: 191

Win95, Win98SE, Win2K, WinXP
D1S, D3S, D4S, D5E, D6E, D7E, D9PE, D10E, D12P, DXEP, L0.9\FPC2.0
BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 141

Windows 2K, XP, 7 & Server 2003 - 2008; Linux (Ubuntu, Fedora)
D7, D05, D06, D09, DXE
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 8721
Erhaltene Danke: 191

Win95, Win98SE, Win2K, WinXP
D1S, D3S, D4S, D5E, D6E, D7E, D9PE, D10E, D12P, DXEP, L0.9\FPC2.0
BeitragVerfasst: 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.