powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / положить в массив байт данные и получить их обратно
3 сообщений из 3, страница 1 из 1
положить в массив байт данные и получить их обратно
    #38880032
cpp2015
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день.
Не хочу городить огород, лучше сразу спрошу у более опытных людей, как лучше сделать.
Делаю межпроцессное взаимодействие через Memory Mapping File. Допустим проецировали файл в память размером 128 байт. Получили ссылку на адрес памяти:
Код: plaintext
1.
LPVOID lpFileMap


Вопрос 1.
Как лучше побайтно работать с этим файлом в памяти, чтобы можно было обратиться к любому байту этого файла ?
Я пока придумал так:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
// объявляем временный массив байт
unsigned char bytearray[128];
// копируем в него файл из памяти
CopyMemory(bytearray, lpFileMap, 128);
// работаем с данными в массиве
......bytearray[10] = .......
// закидываем результат обратно в память
CopyMemory(lpFileMap, bytearray, 128);


Так правильно ? Или можно как-то лучше, без создания промежуточного массива ?

Ну и 2-й главный вопрос.
Как лучше всего уложить в эти 128 байт файла в памяти разнообразную информацию и потом считать её оттуда.
Например, нужно в первые 4 байта положить число int. Далее с 5-го по 12 байты (8 байт) уложить число double, затем, например, с 13 по 33 байты уложить строку Unicode типа wstring. Ну и затем всё это прочитать обратно.

Буду признателен, если кто-то напишет пример.
...
Рейтинг: 0 / 0
положить в массив байт данные и получить их обратно
    #38880034
cpp2015
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В идеале бы конечно записать и считать из файла структуру struct с нужными полями. Но другой процесс написан на c#. Поймут ли они друг друга с этими структурами.
...
Рейтинг: 0 / 0
положить в массив байт данные и получить их обратно
    #38880041
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
нахрен не нужен никакой массив вспомогательный
MapViewOfFile возвращает просто адрес, его можно трактовать как адрес структуры

cpp2015Но другой процесс написан на c#
а там копируют штатным образом, обращаясь к мемори мэппед файлу как к потоку
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / положить в массив байт данные и получить их обратно
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]