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

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

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

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

Ответ
 
Опции темы
Старый 20.10.2019, 21: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, 09:42   #2
waleri
Старожил
 
Регистрация: 13.07.2012
Сообщений: 5,971
По умолчанию

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

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

Код:
*(DWORD *)((DWORD)temp + sizeof(DWORD)) = test;
Или вы о другом?
Пишу программы на С++. ТЗ, цену и сроки на p51x.fr {@} яндекс.ру
p51x вне форума Ответить с цитированием
Старый 23.10.2019, 00:36   #5
zombivadim
Пользователь
 
Регистрация: 18.08.2019
Сообщений: 10
По умолчанию

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


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