![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 16.02.2013
Сообщений: 18
|
![]()
Создаю проецируемый файл:
CreateFileMapping(INVALID_HANDLE_VA LUE, NULL, PAGE_READWRITE, 0, 100, L"FileName"); Если я все правильно понял размер его будет - 100 Байт. Этот размер нельзя превышать. Вопрос: Что произойдет с размером и содержимым проецируемого файла если вызвать: CreateFileMapping(INVALID_HANDLE_VA LUE, NULL, PAGE_READWRITE, 0, 200, L"FileName"); ИЛИ CreateFileMapping(INVALID_HANDLE_VA LUE, NULL, PAGE_READWRITE, 0, 50, L"FileName"); По моей информации в первом случае размер увеличится и содержимое сохранится. Непонятен второй вариант, где размер задан 50 Байт. Уменьшится ли размер? Если ошибаюсь во всем, распишите первый и второй случай. |
![]() |
![]() |
![]() |
#2 | |
Участник клуба
Регистрация: 08.10.2007
Сообщений: 1,185
|
![]()
RTFM
http://msdn.microsoft.com/en-us/libr...=vs.85%29.aspx Цитата:
|
|
![]() |
![]() |
![]() |
#3 |
Пользователь
Регистрация: 16.02.2013
Сообщений: 18
|
![]()
Сколько памяти я имею в распоряжении?
вызвав: CreateFileMapping(INVALID_HANDLE_VA LUE, NULL, PAGE_READWRITE, 0, sizeof(DWORD), L"MapFileName); Почему у меня получается записывать в: LPVOID MapView =MapViewOfFile(hMapFile, FILE_MAP_ALL_ACCESS, 0, 0, sizeof(DWORD)); DWORD v =123; DWORD* p =(DWORD*)MapView; memcpy(&p[5], &v, sizeof(DWORD)); |
![]() |
![]() |
![]() |
#4 |
Форумчанин
Регистрация: 02.12.2012
Сообщений: 250
|
![]()
Ничего не понял,что хочет топикстартер. Сколько памяти можно спроецировать? До 4 гб на х86 и до 16 эксабайт на х64.
Я делаю так: CreateFile -> GetFileSize -> CreateFileMapping -> MapViewOfFileEx и всё нормально работает |
![]() |
![]() |
![]() |
#5 |
Старожил
Регистрация: 13.07.2012
Сообщений: 6,372
|
![]()
топикстартер жалуется, что может писать за пределы заявленной памяти.
Память выделяется страницами, обычно по 4К (для 32бит систем). |
![]() |
![]() |
![]() |
#6 |
Пользователь
Регистрация: 16.02.2013
Сообщений: 18
|
![]()
Все понял.
Благодарю. |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Размер файла | саша40 | Общие вопросы Delphi | 2 | 17.10.2012 17:20 |
Работа с CreateFileMapping. С++ | Angriff | Помощь студентам | 0 | 16.03.2012 18:58 |
Размер файла | Димонн | Помощь студентам | 2 | 21.09.2010 08:40 |
Размер файла | NetSpace | Свободное общение | 2 | 15.06.2009 13:36 |
Размер файла | Tesmont | Помощь студентам | 1 | 15.05.2009 17:31 |