Средние комплексные типы как параметры метода интерфейса

StackOverflow https://stackoverflow.com/questions/3145829

  •  01-10-2019
  •  | 
  •  

Вопрос

Я хотел бы знать, если возможно, есть несколько хороших решений для обработки сложных типов, не импортируемых в IDL. Моя самая большая проблема использует _M128 векторных типов для инструкций Simmed IE. Xmvector. __declspec не распознается компилятором MIDL, поэтому импорт типа данных __M128 не имеет вопроса. Я посмотрел на использование wire_marshal, чтобы сделать это, но я думаю, что ему нужно знать о типе __m128. Если есть способ, которым я могу ждать_declare xmvector для использования с wire_marshal у меня нет тумана о том, как я бы сделал это.

Я подумал скрыть тип, герметизируя его, что он уже будет заключаться в том, чтобы я заключающуюся в том, что я инкапсулирует типы данных для размышлений. Я играл с несколькими идеями, включая наследование от интерфейсов COM и C ++. Ничего здесь не выглядела слишком многообещающими.

Многие люди сказали мне не использовать ком, и я, честно говоря, провел много часов, а не кодирующих и просто пытаюсь понять этот материал. Моя логика продолжает видеть много преимуществ для использования COM, а альтернативы, включая MyCom, выглядят так же, как трудоемки и пропущены проблемами. Если это моя самая большая проблема с использованием COM, если я должен продолжать движущиеся предисловие или решения, которые будут замедлять это приложение, помните о своей зависимости от графического представления и вычислительного моделирования в реальном времени? Я ищу делать вещи в масштабе рендеринга ферм или облаков или что-то из своего рода ... Я говорю Большой, и я знаю, что я нуб, пожалуйста, не пытаясь произвести впечатление, просто искать, чтобы стать проинформированным ... Я многое сделал Исследования!

THX, Бекад:

Это было полезно?

Решение

Оставляет немного забавного вкуса во рту:

typedef XMVECTOR* PTR_XMVECTOR;

typedef struct _ARRAY_XMVECTOR {
        unsigned int size_array;
        [size_is(size_array*SIZE_OF_XMVECTOR)] PTR_XMVECTOR VECTOR_ARRAY;
    } ARRAY_XMVECTOR;

typedef [wire_marshal(MARSHAL_AS)] ARRAY_XMVECTOR MY_VECTOR_ARRAY;

Я бы редактировал его или добавил его как комментарий, но, вероятно, ближайший этот темер придет к ответу ... наверное, очевидно, что .... Извините за ответ на мой вопрос: /

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top