Сейчас на форуме: hgdagon, asfa, bartolomeo (+4 невидимых) |
![]() |
eXeL@B —› Программирование —› CreateFileMapping и SEC_IMAGE |
Посл.ответ | Сообщение |
|
Создано: 14 января 2007 06:23 · Личное сообщение · #1 Хочу открыть образ РЕ фаила в режиме чтения, написал вот такой код (вариант без обработки ошибок): HANDLE hFile = CreateFile(szFileName, GENERIC_READ, FILE_SHARE_READ , NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL); HANDLE hMap = CreateFileMapping(hFile, NULL, SEC_IMAGE, 0, 0, 0); На выходе hMap == 0, хендл открытого файла валиден. Может быть надо применить какую-то другую комбинацию флагов? МСДН об этом молчит... ![]() |
|
Создано: 14 января 2007 06:30 · Поправил: Smon · Личное сообщение · #2 |
|
Создано: 14 января 2007 06:37 · Личное сообщение · #3 |
|
Создано: 14 января 2007 06:40 · Личное сообщение · #4 hfile := CreateFile(name, GENERIC_READ, FILE_SHARE_READ, nil, OPEN_EXISTING, 0, 0); if hfile = INVALID_HANDLE_VALUE then Exit; hmap := CreateFileMapping(hfile, nil, PAGE_READONLY+SEC_IMAGE, 0, 0, nil); if hmap = 0 then Exit; pmap := MapViewOfFile(hmap, FILE_MAP_READ, 0, 0, 0); Smon Разница между мапингом с SEC_IMAGE и LoadLibraryEx есть весьма существенная. Состоит она в том, что если нужный нам пе образ уже загружен в процесс, то LoadLibraryEx вернет указатель на него (вместе со всеми изменениями которые могли быть внесены в памяти). Мапинг вернет нам оригинальный образ получений из файла на диске. ----- Скажем дружно - нафиг нужно. ![]() |
|
Создано: 14 января 2007 06:48 · Поправил: HoBleen · Личное сообщение · #5 |
|
Создано: 14 января 2007 07:48 · Поправил: sniperZ · Личное сообщение · #6 |
|
Создано: 14 января 2007 08:47 · Личное сообщение · #7 |
|
Создано: 14 января 2007 09:00 · Личное сообщение · #8 |
![]() |
eXeL@B —› Программирование —› CreateFileMapping и SEC_IMAGE |
Эта тема закрыта. Ответы больше не принимаются. |