Comment mapper un "gros" fichier en mémoire ?
Bonjour à tous,
Mon problème est le suivant:
Je cherche à mapper un fichier en mémoire. Jusque là, pas de problème via les instructions:
Code:
1 2 3 4 5 6 7
|
...
size=GetFileSize(hFile, 0);
hMap=CreateFileMapping(hFile, 0, PAGE_READONLY, 0, size, 0);
...
lpMapView=MapViewOfFile(hMap, FILE_MAP_READ, 0, 0, size);
... |
Dès lors, je peux facilement utiliser mon fichier avec mon pointeur lpMapView. Ma seule crainte était un test au limite avec un gros fichier (2Go) et ça a pas loupé : j'obtiens ERROR_NOT_ENOUGH_MEMORY! :(
Je me doute qu'il est difficile d'obtenir un tel espace mémoire contigu mais je me demandais s'il n'y avais pas une configuration à faire (des instructions ou du projet) voir d'autres méthodes pour faire une opération équivalente (via la bibliothèque MFC pitetre.. )
Contexte:
Développement sous Visual C++ 2003
Application avec MFC
Merci d'avance!