Avatar billede nomic Nybegynder
23. juli 2007 - 14:32 Der er 6 kommentarer og
1 løsning

CreateFileMapping. Flere instanser.

Hej.
Jeg har lige et spørgsmål til CreateFileMapping funktionen. Kan se der er flere eksempler på brug af denne funktion.

Mit spørgsmål er om der er muligt at kalde den funktion flere gange på denne måde?

program shrmem;

{$APPTYPE CONSOLE}

uses
  SysUtils, Windows;

var
  mem : THandle;
  mem2 : THandle;
  data : ^Integer;
  data2 : ^Integer;

begin
  mem := CreateFileMapping($FFFFFFFF, nil, PAGE_READWRITE, 0, 8192, 'GBLMEM');
  data := MapViewOfFile(mem, FILE_MAP_WRITE, 0, 0, 8192);
  mem2 := CreateFileMapping($FFFFFFFF, nil, PAGE_READWRITE, 0, 8192, 'GBLMEM2');
  data2 := MapViewOfFile(mem2, FILE_MAP_WRITE, 0, 0, 8192);
  UnmapViewOfFile(data);
  CloseHandle(mem);
  UnmapViewOfFile(data2);
  CloseHandle(mem2);
end.

Er lidt i tvivl om det adresseområde man bruger er det samme?
Avatar billede arne_v Ekspert
24. juli 2007 - 02:51 #1
Det er det ikke.

Forskelligt navn => forskelligt område.
Avatar billede nomic Nybegynder
24. juli 2007 - 08:42 #2
Arne V: Hvis du opretter et svar får du point.
Er det ikke rigtigt at de to dele af mit program som bruger shared mem skal kalde CreateFileMapping på samme måde? (Altså med samme rettigheder?).
Avatar billede arne_v Ekspert
24. juli 2007 - 14:55 #3
svar
Avatar billede arne_v Ekspert
24. juli 2007 - 14:58 #4
Du kan have et program der tilgaar sektion READWRITE og et andet der tilgaar
sektion READONLY.

Normalt vil et program kun mappe en sektion en gang og dermed med en adgang.

Du oensker at mappe den samme sektion to gange fra samme progran med forskellig adgang ?
Avatar billede nomic Nybegynder
24. juli 2007 - 15:06 #5
Jeg har en ActiveX som tilgår en sektion med READWRITE access, og et program der tilgår samme sektion kun med READ.
Men som jeg forstår det kan det faktisk ikke lade sig gøre hvis det er programmet der kommer først med at oprette sektionen, da den så kun vil være READ for eftertiden. ActiveX'en kan så ikke skrive til sektionen, da den op først blev oprettet kun med READ access.
Har jeg forstået det korrekt?
Avatar billede arne_v Ekspert
25. juli 2007 - 04:17 #6
Jeg har eksperimenteret lidt.

Så vidt jeg kan se så virker multi CreateFileMapping kun hvis der angives
samme adgang (READWRITE/READONLY). Hvis der er forskellig adgang så fejler
det andet kald.
Avatar billede nomic Nybegynder
25. juli 2007 - 08:14 #7
Ok. Tak for det. Jeg vil prøve og lave ens adgang, og måske også lidt mere fejlhåndtering :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester