2010-06-30 7 views
1

Я хотел бы знать, может быть, есть некоторые хорошие решения для обработки сложных типов, не импортируемых в IDL. Моя самая большая проблема заключается в использовании _m128 типов векторов для simmed инструкций, т.е. XMVECTOR. __declspec не распознается компилятором midl, поэтому импорт типа данных __m128 не может быть и речи. Я просмотрел с помощью wire_marshal, чтобы сделать это, но я думаю, что он должен знать о typedef типа __m128. Если есть способ, я могу использовать foreword_declare XMVECTOR для использования с wire_marshal. У меня нет ничего глупого, как бы я это сделал.Типы интерфейса MIDL как параметры интерфейса интерфейса

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

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

ТНХ, BekaD:

ответ

1

Листья немного смешно вкус во рту: \

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; 

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