Подскажите, какой нужен тип для передачи двоичных данных...
От:
Аноним
Дата:
27.09.06 04:50
Оценка:
Подскажите, какой нужен тип для передачи двоичных данных в COM-e, чтобы использовался стандартный маршалинг.
И как эту функцию можно поюзать, например в C#.
Здравствуйте, Аноним, Вы писали:
А>Подскажите, какой нужен тип для передачи двоичных данных в COM-e, чтобы использовался стандартный маршалинг. А>И как эту функцию можно поюзать, например в C#.
А>[id(0), helpstring("method SendData")] HRESULT SendData(.....)
А>Спасибо.
Я сейчас с таким же вопросом столкнулся... в общем решил конвертировать с помощью binbase64 в BSTR и передовать обыкновенным стрингом. А в С# легко стринг конвертнуть назад в двоичные байты, тем же binbase64.
В схватке "человек против компьютера" всегда побеждает логика!
Re: Подскажите, какой нужен тип для передачи двоичных данных
Здравствуйте, <Аноним>, Вы писали:
А>Подскажите, какой нужен тип для передачи двоичных данных в COM-e, чтобы использовался стандартный маршалинг. А>И как эту функцию можно поюзать, например в C#.
А>[id(0), helpstring("method SendData")] HRESULT SendData(.....)
А>Спасибо.
IStream* | BSTR
... << RSDN@Home 1.1.4 beta 4 rev. 303>>
Народная мудрось
всем все никому ничего(с).
Re[2]: Подскажите, какой нужен тип для передачи двоичных дан
Здравствуйте, Tom, Вы писали:
А>>Подскажите, какой нужен тип для передачи двоичных данных в COM-e, чтобы использовался стандартный маршалинг.
Tom>IStream* | BSTR
Ой. Самые негативные впечатления об IStream. То есть работает, и можно передавать сверхбольшие данные и читать их выборочно, но при межпроцессном и межмашинном вызове можно так налететь на ограничение доступа...
IStream, в итоге, пытались заменять на BSTR, что куда натуральнее, но долго объяснять другим (и вспоминать самому) как вычислять длину бистра по длине блока данных и наоборот. Наоборот, кстати, длина блока данных не определена, если только не раздувать все вдвое.
Есть еще рекомендации (микрософта) насчет SAFEARRAY(VT_I1), но по-серьезному я это не пробовал и какие могут быть проблемы — не уяснил.
GS
Re[3]: Подскажите, какой нужен тип для передачи двоичных дан
Tom>>IStream* | BSTR
GS>Ой. Самые негативные впечатления об IStream. То есть работает, и можно передавать сверхбольшие данные и читать их выборочно, но при межпроцессном и межмашинном вызове можно так налететь на ограничение доступа...
Интересно, а можно подробнее?
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[3]: Подскажите, какой нужен тип для передачи двоичных дан
Здравствуйте, George Seryakov, Вы писали:
GS>Здравствуйте, Tom, Вы писали:
А>>>Подскажите, какой нужен тип для передачи двоичных данных в COM-e, чтобы использовался стандартный маршалинг.
Tom>>IStream* | BSTR
GS>Ой. Самые негативные впечатления об IStream. То есть работает, и можно передавать сверхбольшие данные и читать их выборочно, но при межпроцессном и межмашинном вызове можно так налететь на ограничение доступа...
Ну это проблема не самого IStream а настройки секурити, при callback вызовах...
... << RSDN@Home 1.1.4 beta 4 rev. 303>>
Народная мудрось
всем все никому ничего(с).
Re[4]: Подскажите, какой нужен тип для передачи двоичных дан
Здравствуйте, Left2, Вы писали:
Tom>>>IStream* | BSTR
GS>>Ой. Самые негативные впечатления об IStream. То есть работает, и можно передавать сверхбольшие данные и читать их выборочно, но при межпроцессном и межмашинном вызове можно так налететь на ограничение доступа...
L>Интересно, а можно подробнее?
Здравствуйте, <Аноним>, Вы писали:
А>Подскажите, какой нужен тип для передачи двоичных данных в COM-e, чтобы использовался стандартный маршалинг. А>И как эту функцию можно поюзать, например в C#.