Visual C ++ 6 MFC MapViewOfFile возвращает код ошибки 8

У меня есть программа, которая создает файл карты, она в состоянии сделать этот вызов просто отлично, m_hMap = CreateFileMapping(m_hFile,0,dwProtect,0,m_dwMapSize,NULL);, но при последующем вызове функции MapViewOfFile(m_hMap,dwViewAccess,0,0,0), Я получаю код ошибки 8, который равен ERROR_NOT_ENOUGH_MEMORY, или строку ошибки «ошибка Недостаточно памяти для обработки этой команды».

Так что я не совсем понимаю, что MapViewOfFile делает для меня, и как исправить ситуацию.

некоторые цифры …

m_dwMapSize = 453427200
dwProtect = PAGE_READWRITE;
dwViewAccess = FILE_MAP_ALL_ACCESS;

Я думаю, что моя страница 65536 или 2 ^ 16

0

Решение

В случае очень большого файла и его чтения рекомендуется прочитать его небольшими частями, а затем обработать каждый фрагмент. А функция MapViewOfFile используется для отображения фрагмента в памяти.

смотреть на http://msdn.microsoft.com/en-us/library/windows/desktop/aa366761(v=vs.85).aspx нужно смещение, чтобы правильно выполнять свою работу, т. е. если вы хотите прочитать очень большой файл по частям. Главным образом из-за фрагментации и связанных с этим причин очень большой запрос памяти не удается.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]