Ваше "Нарушение прав доступа" является ошибкой доступа к памяти.Другими словами, ваша программа обращалась к памяти, которой она не принадлежала.Это, вероятно, вызвано тем, что ваш синтаксический анализатор пытается выполнить чтение за пределами памяти, выделенной для файла, или, как предполагает jdehaan , функция MapViewOfFile возвращает NULL.
UPDATE:
Если MapViewOfFile не возвращает NULL, возможно, проблема в том, что вы обращаетесь за пределы выделенного диапазона для сопоставленного файла.Похоже, вы указали в своих комментариях по этому вопросу, что операция синтаксического анализа также изменяет XML-документ путем добавления некоторых завершающих тегов.Это, несомненно, увеличит длину файла и, таким образом, запишет за конец блока файла в памяти.Это может вызвать ошибку, которую вы видите.
Если это не так, то, возможно, вы не вызвали CreateFileMapping с правильными спецификаторами доступа.В документации для MapViewOfFile говорится, что вам нужно указать параметр PAGE_EXECUTE_READWRITE при создании объекта сопоставления файлов, если вы хотите представление карты, которое разрешает доступ для чтения / записи.
Если это не тактогда я подозреваю, что ключом может быть ответ Ганса .На какой системе вы работаете?Это 32-битная Windows или 64-битная?Если размер файла превышает 2 ГБ, вы не сможете отобразить его.