Маршаллинг
От: Сергеев Дмитрий Николаевич Россия  
Дата: 20.05.01 17:18
Оценка:
Господа! Не сможете ли подсказать, существуют ли наборы стандартных интефейсов для выполнения маршаллинга? Мне необходимо упаковать структуру, содержащую указатели на структуры, в двоичный образ. Есть информация, что такое возможно, но где искать не знаю...
Ведь в RPC существует такой стандартный механизм.
Д.Н.С.
Re: Маршаллинг
От: VladD2 Российская Империя www.nemerle.org
Дата: 20.05.01 18:13
Оценка:
Здравствуйте Сергеев Дмитрий Николаевич, вы писали:

СДН>Господа! Не сможете ли подсказать, существуют ли наборы стандартных интефейсов для выполнения маршаллинга? Мне необходимо упаковать структуру, содержащую указатели на структуры, в двоичный образ. Есть информация, что такое возможно, но где искать не знаю...

СДН>Ведь в RPC существует такой стандартный механизм.

COM и использует RPC-механизмы для мршалинга. О том, какие конкретно функции использовать, можно глянуть у Дона Бокса в одной из его статей в MSDN Magazine: http://msdn.microsoft.com. Можно так же попытаться создать (COM-овский) стаб (например, по TypeInfo — CreateStubFromTypeInfo) и попробовать паковать через него. Все это барахло если и документировано, то очень слабо.

Но, чем лезть в такие дебри, не проще ли создать функции сериализации для своих структур вручную?
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re: Маршаллинг
От: Willi  
Дата: 28.05.01 06:42
Оценка:
Здравствуйте Сергеев Дмитрий Николаевич, вы писали:

СДН>Господа! Не сможете ли подсказать, существуют ли наборы стандартных интефейсов для выполнения маршаллинга? Мне необходимо упаковать структуру, содержащую указатели на структуры, в двоичный образ. Есть информация, что такое возможно, но где искать не знаю...

СДН>Ведь в RPC существует такой стандартный механизм.

Нужно описать все интерфейсы и структуры данных на IDL, после чего можно
будет сгенерировать код proxy/stub с помощью MIDL компилятора.

Willi
\/\/i||i
Re: Маршаллинг
От: IT Россия linq2db.com
Дата: 30.05.01 13:06
Оценка:
СДН>Господа! Не сможете ли подсказать, существуют ли наборы стандартных интефейсов для выполнения маршаллинга? Мне необходимо упаковать структуру, содержащую указатели на структуры, в двоичный образ. Есть информация, что такое возможно, но где искать не знаю...
СДН>Ведь в RPC существует такой стандартный механизм.

Мои скромные познания в COM мне говорят — не связывайся с маршалингом никогда, даже если очень надо. Всё, что угодно, толпа параметров, SafeArray, но только не маршолинг. Когда-нибудь, где-нибудь обязательно наступишь на грабли.
Если нам не помогут, то мы тоже никого не пощадим.
Re[2]: Маршаллинг
От: VladD2 Российская Империя www.nemerle.org
Дата: 31.05.01 21:03
Оценка:
Это точно!
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re: Маршаллинг
От: __omega  
Дата: 07.06.01 10:43
Оценка:
Здравствуйте Сергеев Дмитрий Николаевич, вы писали:

СДН>Господа! Не сможете ли подсказать, существуют ли наборы стандартных интефейсов для выполнения маршаллинга? Мне необходимо упаковать структуру, содержащую указатели на структуры, в двоичный образ. Есть информация, что такое возможно, но где искать не знаю...

СДН>Ведь в RPC существует такой стандартный механизм.

Имеет смысл описать все структуры в IDL файле, чтобы MIDL смог сгенерировать proxy/stub. Это более надежный способ чем маршалить вручную.
Re[2]: Маршаллинг
От: VladD2 Российская Империя www.nemerle.org
Дата: 07.06.01 17:44
Оценка:
Здравствуйте __omega, вы писали:

O>Имеет смысл описать все структуры в IDL файле, чтобы MIDL смог сгенерировать proxy/stub. Это более надежный способ чем маршалить вручную.


Хе. Если структуры в мидле описать (с гуидами), то proxy/stub и нафиг не нужен будет, только вопрос не про то. Вопрос о халявной сериализации данных.

Кстати в следующей версии ascLib должна появиться сериализация automation-совметимых структур (в том числе и масивов структур) с лубой вложеностью. Все в исходниках. Захадите к нам на сайт через 2-4 дедельки и качайте.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[3]: Маршаллинг
От: __omega  
Дата: 07.06.01 19:43
Оценка:
Здравствуйте VladD2, вы писали:


VD>Хе. Если структуры в мидле описать (с гуидами), то proxy/stub и нафиг не нужен будет, только вопрос не про то. Вопрос о халявной сериализации данных.


Если челу нужно передать структуры из указателей на другие структуры, то необязательно сильно изварщаться :)

Если к вопросу подойти с теоретической точки зрения, то можно начать со статьи на этом сайте про маршалинг и дальше углубляться в MSDN.. но на моей практике неплохо показали себя и тот же SafeArray, например
а все "углубления" показали что писать маршалинг ручками обойдется дороже

VD>Кстати в следующей версии ascLib должна появиться сериализация automation-совметимых структур (в том числе и масивов структур) с лубой вложеностью. Все в исходниках. Захадите к нам на сайт через 2-4 дедельки и качайте.


а вот уже интересно! посмотрю
Re[4]: Маршаллинг
От: VladD2 Российская Империя www.nemerle.org
Дата: 08.06.01 16:26
Оценка:
Здравствуйте __omega, вы писали:

O>Здравствуйте VladD2, вы писали:


O>Если челу нужно передать структуры из указателей на другие структуры, то необязательно сильно изварщаться :)


Я еще раз повторяю вопрос не про маршалинг, а "о халявной сериализации данных". Сериализация не только для маршалинга нужна она еще, например, при записи в файл может понадобится.

O>Если к вопросу подойти с теоретической точки зрения, то можно начать со статьи на этом сайте про маршалинг и дальше углубляться в MSDN.. но на моей практике неплохо показали себя и тот же SafeArray, например


Статью пр маршалинг я не читал. Я ее писал :).
В SafeArray это здорово, но структура удобней и компактней чем SafeArray(вариантов). К стати в SafeArray и структуру можно записать.

O>а все "углубления" показали что писать маршалинг ручками обойдется дороже.


Он не спрашивал как "писать маршалинг ручками", он спрошивал: "Мне необходимо упаковать структуру, содержащую указатели на структуры, в двоичный образ...".

VD>>Кстати в следующей версии ascLib должна появиться сериализация automation-совметимых структур (в том числе и масивов структур) с лубой вложеностью. Все в исходниках. Захадите к нам на сайт через 2-4 дедельки и качайте.


O>а вот уже интересно! посмотрю


Кстати SafeArray-и любой сложности и любой вложенности (кроме структур) там уже сериализуются.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[4]: Маршаллинг
От: VladD2 Российская Империя www.nemerle.org
Дата: 23.06.01 00:55
Оценка:
Здравствуйте __omega, вы писали:

VD>>Кстати в следующей версии ascLib должна появиться сериализация automation-совметимых структур (в том числе и масивов структур) с лубой вложеностью. Все в исходниках. Захадите к нам на сайт через 2-4 дедельки и качайте.


O>а вот уже интересно! посмотрю


Как и обещал новая версия ascLib-а http://www.optim.ru/Software/rus/ascLib/ascLib.asp

23.06.2001

1. Упрошено создание коллекций подробнее см. статью Пример создания коллекции именованных COM-объектов (http://www.optim.ru/cs/2001/2/COMCollections/COMCollections.asp)
2. В классы ascVariant и ascSafeArray Добавлена поддержка записи в IStream состояния структур. Теперь ascLib поддерживает запись в IStream всех automation-совметимых типов.
3. Упростилась поддержка WTL. Теперь подключение к проекту ascLib одинаково как для ATL- так и для WTL-проектов.
4. К ascLib Добавлена отладочная DLL. Она позволяет переключать (из отладчика) режим "прерывания при возникновении ошибки". Если этот режим включен, то любой макрос возврата ошибки (ASC_RETxxx), например, ASC_RETURN_FAILED будет вызывать ASSERT-диалог. Это позволяет находить глубоко вложенные ошибки. Описание смотри в ascLib.h (функцИЮ ascSetDebugAssert).
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[3]: Маршаллинг
От: araud  
Дата: 31.01.09 13:33
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>Это точно!


Ага, это точно что скромные познания так говорят
Маршаллинг дело хоть и сложное, но для взаимодействия между компами вещь незаменимая.
А на грабли можно и в Hello World наступить — добавил "f", чуть местами перепутал и уже не "Hello World", а "World of Hell"...
Re[5]: Маршаллинг
От: araud  
Дата: 31.01.09 13:38
Оценка:
VD>Я еще раз повторяю вопрос не про маршалинг, а "о халявной сериализации данных". Сериализация не только для маршалинга нужна она еще, например, при записи в файл может понадобится.
руктур) там уже сериализуются.

Отмаршалится можно в стрим, потом стрим слить в файл. Потом из файла того же наполнить стрим и демарш сделать.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.