2010-06-30 64 views
1

我想知道是否有一些很好的解決方案來處理複雜類型不可導入IDL。我最大的擔心是使用_m128矢量類型來進行仿真指令即。 XMVECTOR。 __declspec不被midl編譯器識別,所以導入__m128數據類型是不可能的。我看着使用wire_marshal來做到這一點,但我認爲它需要知道__m128類型的typedef。如果有一種方法,我可以用foreword_declare XMVECTOR與wire_marshal一起使用,我對於如何做這件事我還沒有模糊不清。MIDL複雜類型作爲接口方法參數

我想通過封裝它來隱藏它,它已經是我封裝反射的數據類型。我在這裏玩了一些想法,包括繼承COM和C++接口。這裏沒有什麼看起來太有希

很多人都告訴我不要使用COM,老實說我花了很多時間不編碼,只是試圖找出這些東西。我的邏輯不斷看到使用COM的很多好處,包括MyCOM在內的其他選擇看起來既耗時又充滿了問題。如果這是我使用COM的最大問題,我是否應該繼續前言或解決方案是否會減慢此應用程序,請記住它對圖形化表示和實時計算建模的依賴性?我正在研究做渲染農場或雲彩的東西或類似的東西......我說話很大,我知道我是小白人,所以請不要試圖留下印象,只是希望得到通知......我已經做了很多的研究!

THX, 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; 

我會在已編輯,或添加它作爲一個評論,但可能是最接近這個線程會回答...可能是最明顯的一個......很抱歉回答我自己的問題:/