Модераторы: Partizan, gambit

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> C++ <-> C# 
:(
    Опции темы
zss
Дата 3.12.2006, 13:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 708
Регистрация: 17.6.2004

Репутация: нет
Всего: 2



Цитата(mr.DUDA @  3.12.2006,  11:56 Найти цитируемый пост)
Строку нельзя маршаллизировать как массив. Для строк есть отдельный тип маршаллизации: ByValTStr. К тому же, не мешало бы указать что структура выровнена по границам 1 байта, а для строк используется charset ANSI (1 байт на символ):

блин... если библиотека под Compact FW, то многое недоступно.
Например CharSet.Ansi и Pack.

Что же все так сложно-то. Почему такая несовместимость ?

Добавлено @ 13:09 
Хотя в MSDN говориться что это доступнов CF2.0

но компилятор говорит
Код

'System.Runtime.InteropServices.CharSet' does not contain a definition for 'Ansi'
'System.Runtime.InteropServices.StructLayoutAttribute' does not contain a definition for 'Pack'


Это сообщение отредактировал(а) zss - 3.12.2006, 13:16
PM MAIL ICQ   Вверх
zss
Дата 3.12.2006, 13:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 708
Регистрация: 17.6.2004

Репутация: нет
Всего: 2



Цитата(mr.DUDA @  3.12.2006,  11:56 Найти цитируемый пост)
Работает. 

да вот не совсем

у меня вываливает с исключением
Код

Type 'MyClass' cannot be marshaled as an unmanager structure; no meaningful size or offset can be computed;

PM MAIL ICQ   Вверх
mr.DUDA
Дата 3.12.2006, 16:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 110
Всего: 232



Цитата(zss @  3.12.2006,  12:56 Найти цитируемый пост)
у меня вываливает с исключением Type 'MyClass' cannot be marshaled as an unmanager structure; no meaningful size or offset can be computed;

Покажи что за класс.

З.Ы. про Compact Framework лучше не спрашивать  smile 


--------------------
user posted image
PM MAIL WWW   Вверх
zss
Дата 3.12.2006, 16:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 708
Регистрация: 17.6.2004

Репутация: нет
Всего: 2



Цитата(mr.DUDA @  3.12.2006,  16:42 Найти цитируемый пост)
про Compact Framework лучше не спрашивать

так это очень интерисует smile


Цитата(mr.DUDA @  3.12.2006,  16:42 Найти цитируемый пост)
Покажи что за класс.

переделал класс на структуру - все заработало... странно
PM MAIL ICQ   Вверх
zss
Дата 3.12.2006, 19:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 708
Регистрация: 17.6.2004

Репутация: нет
Всего: 2



возникла еще проблемма - неправильно работает
Marshal.PtrToStructure

до массива все нормально, а при первом byte[] все сбивается
Что ему опять не так ?
PM MAIL ICQ   Вверх
zss
Дата 3.12.2006, 19:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 708
Регистрация: 17.6.2004

Репутация: нет
Всего: 2



с этим вроде разобрался (моя ошибка smile) - всем спасибо
жаль только в CF не работает CharSet и Pack и не получилось маршалить классы smile

Если не сложно - есть еще вопросики к специалистам маршалинга

1. Сокер работает с массивами byte[]. Приходится преобразовывать структуру к массиву, читать в него, а
потом обратно гнать в структуру. Это не очень удобно. Можно ли как сказать, что структура
есть массив байт. А сколько ее размер - пусть считает (или на крайний случай самому говорить размер)

2. Можно ли как читать не всю структуру, а например только ее первые N полей

PM MAIL ICQ   Вверх
mr.DUDA
Дата 3.12.2006, 22:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 110
Всего: 232



1 - нет
2 - нет

Побори свою лень  smile 


--------------------
user posted image
PM MAIL WWW   Вверх
zss
Дата 6.12.2006, 19:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 708
Регистрация: 17.6.2004

Репутация: нет
Всего: 2



Цитата(mr.DUDA @  3.12.2006,  22:02 Найти цитируемый пост)
Побори свою лень  

ладно - поборол smile но классы маршалить напрочь отказывается - как быть ?
PM MAIL ICQ   Вверх
mr.DUDA
Дата 6.12.2006, 21:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 110
Всего: 232



Чтоб маршалило классы - надо либо поставить [Serializable], либо наследовать от MarshalByRefObject


--------------------
user posted image
PM MAIL WWW   Вверх
zss
Дата 6.12.2006, 22:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 708
Регистрация: 17.6.2004

Репутация: нет
Всего: 2



Цитата(mr.DUDA @  6.12.2006,  21:56 Найти цитируемый пост)
Чтоб маршалило классы - надо либо поставить [Serializable], либо наследовать от MarshalByRefObject 

а что дас первый случай и что второй ?
PM MAIL ICQ   Вверх
mr.DUDA
Дата 6.12.2006, 22:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 110
Всего: 232



Взято из вопросов по ремоутингу: первое даст возможность передававать объект из одного аппдомена в другой по значению, а второе - по ссылке (с прокси). Ты говоришь о маршаллинге - мой ответ как раз о маршаллинге. Заметь, не о сериализации или записи объекта в стрим; а именно о передаче из одного контекста в другой (из одного аппдомена в другой, из одного процесса в другой).


--------------------
user posted image
PM MAIL WWW   Вверх
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




[ Время генерации скрипта: 0.0524 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.