bonjour,

je desire utiliser CreateFileMapping et MapViewOfFile pour lire un fichier. Voici le code :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
#include <stdio.h>
#include <windows.h>

int
main ()
{
  char *file;
  HANDLE fm = NULL;
  int size;
  char *data;

  file = "test.menu";
  size = 1080;
  fm = CreateFileMapping(INVALID_HANDLE_VALUE,
                         NULL, /* default security */
                         PAGE_READONLY,
                         0,
                         (DWORD)size,
                         file);
  if (!fm) {
    printf ("error when creating\n");
    return 0;
  }

  data = MapViewOfFile(fm, FILE_MAP_READ, 0, 0, 0);
  if (!data) {
    printf ("error when viewing\n");
    CloseHandle(fm);
    return 0;
  }

  printf ("data : *%c*\n", *data);

  UnmapViewOfFile(data);
  CloseHandle(fm);

  return 0;
}
le fichier test.menu a une taille de 1080 octets et commence par un '<' (c'est un fichier xml)

Quand j'execute le programme, il n'affiche rien (*data vaut 0).

J'ai certainement du me tromper dans les valeurs des parametres de CreateFileMapping et MapViewOfFile

quelqu'un voit-il le probleme ?

merci