Сообщество программистов Autodesk в СНГ

ADN Club => ObjectARX => Тема начата: Gennadiy от 25-07-2016, 22:54:54

Название: Как передать структуру в managed wrapper
Отправлено: Gennadiy от 25-07-2016, 22:54:54
Добрый вечер.

Создаю managed wrapper для своего объекта.
В классе объекта объявлена структура типа
Код - C++ [Выбрать]
  1. public:
  2.   struct LayData
  3.   {
  4.     AcString Name;
  5.     AcGePoint3d Pos;
  6.     double H;
  7.     int Code;
  8.   };
  9.  
  10. protected:
  11.   AcArray<LayData> lays;

Подскажите как мне обращаться к этому массиву структур из managed wrappera, в смысле
преобразовывать из unmanaged в managed и обратно? Надеюсь хоть и коряво но все же понятно выразил мысль?
Название: Re: Как передать структуру в managed wrapper
Отправлено: Александр Ривилис от 25-07-2016, 22:58:38
Создаю managed wrapper для своего объекта.
Зачем?
Название: Re: Как передать структуру в managed wrapper
Отправлено: Gennadiy от 25-07-2016, 23:04:32
Чтобы дальше работать с ним на c#. У меня так все custom entity сделаны. На ObjectARX я пишу только
сам объект, а дальше создаю оболочку под .net 
Название: Re: Как передать структуру в managed wrapper
Отправлено: Александр Ривилис от 25-07-2016, 23:39:29
Что-то я сильно сомневаюсь, что такое AcArray<LayData>  можно передать в managed. Впрочем тут я не специалист.
Название: Re: Как передать структуру в managed wrapper
Отправлено: Gennadiy от 26-07-2016, 08:48:48
Да, пожалуй, напрямую передать AcArray<LayData> в managed не получится.
Придется либо вместо структуры LayData писать навороченный класс, и соответствующий класс в managed,
чтобы можно было сделать преобразование как, например, AcGePoint3dArray в Point3dCollection,
либо поступить проще, и в каком то методе считывать и записывать данные поэлементно.
Название: Re: Как передать структуру в managed wrapper
Отправлено: Александр Ривилис от 26-07-2016, 08:50:11
либо поступить проще, и в каком то методе считывать и записывать данные поэлементно.
Я думаю, что это будет самым правильным способом.