Форум программистов
 
О проблемах, например, с регистрацией пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail, а тут можно восстановить пароль.

Вернуться   Форум программистов > Низкоуровневое программирование > Win Api
Регистрация

Восстановить пароль
Повторная активизация e-mail

Здесь нужно купить рекламу за 20 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru
Без учёта ботов - 20000 человек в день, 350000 в месяц.

Ответ
 
Опции темы
Старый 20.10.2019, 20:49   #1
zombivadim
Пользователь
 
Регистрация: 18.08.2019
Сообщений: 10
По умолчанию Скопировать данные из проекции файла.

Привет! Создаю стандартно проекцию файла.
Код:
file = CreateFile(file_in, GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
MappingR = CreateFileMapping(file, 0, PAGE_READONLY, 0, 0, 0);
WinINIR = MapViewOfFile(MappingR, FILE_MAP_READ, 0, 0, 0);
далее я читаю данные из файла в буфер
Код:
SetFilePointer(file, m_dword , NULL, FILE_BEGIN);
BYTE* pArray = new BYTE[iSize];
ReadFile(file, pArray, iSize, &dwBytesRead, NULL);
Но у меня уже есть проекция.Как мне просто скопировать из нее данные в буфер?
Вроде и данные в какое место в проекции сместиться есть m_dword не догоняю как мне скопировать память.
zombivadim вне форума Ответить с цитированием
Старый 21.10.2019, 08:42   #2
waleri
Старожил
 
Регистрация: 13.07.2012
Сообщений: 6,197
По умолчанию

memcpy(WinINIR + dwKudaNado, from_buffer, 1234);
waleri на форуме Ответить с цитированием
Старый 22.10.2019, 23:17   #3
zombivadim
Пользователь
 
Регистрация: 18.08.2019
Сообщений: 10
По умолчанию

С этим я вроде разобрался но вот еще один интересный момент.
Код:
BYTE* temp = new BYTE[size_file];
DWORD test = *(DWORD *)((DWORD)temp + sizeof(DWORD));
Таким образом я получаю значение которое лежит по смещению 8 байт в temp
А как мне сделать обратное преобразование, не получить значение а наоборот
записать его в temp. Можно конечно определить структуру, но хотелось бы без нее.
zombivadim вне форума Ответить с цитированием
Старый 22.10.2019, 23:32   #4
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,103
По умолчанию

Код:
*(DWORD *)((DWORD)temp + sizeof(DWORD)) = test;
Или вы о другом?
p51x вне форума Ответить с цитированием
Старый 22.10.2019, 23:36   #5
zombivadim
Пользователь
 
Регистрация: 18.08.2019
Сообщений: 10
По умолчанию

Да да. Я понял.
zombivadim вне форума Ответить с цитированием
Ответ

Здесь нужно купить рекламу за 20 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru
Без учёта ботов - 20000 человек в день, 350000 в месяц.

Опции темы


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Скопировать данные не загружается ОС. Скопировать в винчестера данные irra9991 Операционные системы общие вопросы 7 28.12.2017 01:11
помогите пожалуйста скопировать данные adyvan7 Microsoft Office Excel 3 19.05.2014 23:18
Скопировать данные из файла Excel в StringGrid Екатерина_21 C++ Builder 2 18.05.2012 14:17
Функция определения размера проекции файла. nazavrik Общие вопросы C/C++ 0 17.10.2009 18:08
Как правильно скопировать данные с одного текстового файла в другой? Dem80 Общие вопросы C/C++ 2 06.03.2009 22:17


Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru
Пеллетный котёл Emtas
котлы EMTAS