Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.87/15: Рейтинг темы: голосов - 15, средняя оценка - 4.87
0 / 0 / 0
Регистрация: 04.02.2012
Сообщений: 14
1

Считать структуру из разделяемой памяти

16.04.2012, 14:27. Показов 2869. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый день!
Есть разделяемый файл. В приложении А в файл запихиваю структуру. В приложении Б считываю эту структуру из файла. Выдается исключение:
System.ArgumentException: Указанный тип должен представлять собой структуру, не содержащую ссылок.
То есть функции MemoryMappedViewAccessor.Read не нравится присутствие string в структуре. Тогда как передавать подобные структуры?

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
       [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
       struct PTSTRUCT
        {
            [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 30)]
            public string tname;
            int y;
        }
 
 
PTSTRUCT pt = new PTSTRUCT();
try
            {
                using (MemoryMappedFile mmf = MemoryMappedFile.OpenExisting("{EE95CC58-86D3-4DA2-A93E-5322C6B1267A}"))
                {
                    Mutex mutex = Mutex.OpenExisting("{E2E2EF8B-76AF-4462-B7E7-BCC0E1F5BD7B}");
                    mutex.WaitOne();
                    using (MemoryMappedViewAccessor mmva = mmf.CreateViewAccessor())
                    {
                        mmva.Read<PTSTRUCT>(0, out pt);
                    }
 
                    
                   mutex.ReleaseMutex();
                }
            }
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
16.04.2012, 14:27
Ответы с готовыми решениями:

Аська на основе разделяемой памяти
Прогреры и хакеры и им подобные... обращаюсь с особой просьбой: есть мысли по поводу перессылки...

Запись и считывание разделяемой памяти
Всем доброго времени суток. Столкнулся с одной проблемой. Есть две программы: 1 создаёт...

Синхронизация доступа к разделяемой памяти
Когда потоки являются дочерними по отношению к процессу тут все просто - объект мьютекса находится...

Хранение указателей в разделяемой памяти
Выручайте ребята. Задали лабораторную на взаимодействие процессов. Не могу справиться с...

1
1274 / 975 / 113
Регистрация: 12.01.2010
Сообщений: 1,971
16.04.2012, 14:34 2
если у строки действительно SizeConst = 30, то есть всегда 30 символов
то можно написать как-то так
C#
1
2
3
4
5
unsafe struct PTSTRUCT
    {
        public fixed char tname[30];
        int y;
    }
про это можно подробней почитать тут http://msdn.microsoft.com/ru-r... ewsya.aspx
1
16.04.2012, 14:34
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
16.04.2012, 14:34
Помогаю со студенческими работами здесь

Сделать массив из 10 int в разделяемой памяти
Хочу сделать массив из 10 int в разделяемой памяти. Доступ из разных процессов от fork(). Так...

Прогон программ с использованием разделяемой памяти
/* Мы организуем разделяемую память для массива из трех целых чисел. Первый элемент массива...

В чем основное преимущество разделяемой памяти
Подскажите в чем основное преимуществоразделяемой памяти

Как сохранить данные контейнера в разделяемой памяти
Ищу быстрый способ обмена данными между процессами. Процессы - одинакового типа т.е одна и та же...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru