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

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

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

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

Ответ
 
Опции темы
Старый 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,939
По умолчанию

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,041
По умолчанию

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

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

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Скопировать данные не загружается ОС. Скопировать в винчестера данные 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


13:12.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.