Bonjour
Je voudrais lire un fichier, placer le contenu de ce fichier dans un buffer
et modifier ce buffer (mais pas le fichier).
J'arrive bien à ouvrir le fichier et à le charger dans le buffer
or le buffer semble être en lecture seule
impossible de modifier un octet de ce buffer
voici la partie de code qui doit poser problème :
J'ai essayé avec PAGE_READONLY, FILE_MAP_WRITE|FILE_MAP_READ, mais je n'ai pas dû trouver la bonne combinaison
Code C/C++ :
hFile = CreateFile(Fichier_In, GENERIC_READ, FILE_SHARE_READ| FILE_SHARE_WRITE, NULL, OPEN_EXISTING, 0, NULL);
if (hFile == INVALID_HANDLE_VALUE)
{
MessageBox(hwnd, "Erreur CreateFile", "Info", MB_OK);
return 0;
}
dwSize = GetFileSize(hFile, NULL);
hFileMapping = CreateFileMapping(hFile, NULL, PAGE_READWRITE, 0, 0, NULL);
if (!hFileMapping)
{
MessageBox(hwnd, "Erreur CreateFileMapping", "Info", MB_OK);
CloseHandle(hFile);
return 0;
}
lpMapStart = (LPBYTE)MapViewOfFile(hFileMapping, FILE_MAP_ALL_ACCESS, 0, 0, 0);
if (!lpMapStart)
{
MessageBox(hwnd, "Erreur MapViewOfFile", "Info", MB_OK);
CloseHandle(hFileMapping);
CloseHandle(hFile);
return 0;
}
Val = lpMapStart[0]; // Fonctionne : la valeur lue est correcte
lpMapStart[0] = 1; // Plante
UnmapViewOfFile(lpMapStart);
CloseHandle(hFileMapping);
CloseHandle(hFile);
merci