MIDL复杂类型作为接口方法参数

MIDL复杂类型作为接口方法参数,midl,Midl,我想知道是否有一些很好的解决方案来处理不可导入IDL的复杂类型。我最担心的是在simmed指令中使用_m128向量类型,即XMVECTOR__midl编译器无法识别declspec,因此无法导入_m128数据类型。我研究过使用wire_marshal来实现这一点,但我认为它需要了解uu m128类型的typedef。如果有一种方法,我可以前言XMVECTOR与电线元帅一起使用,我还不知道我将如何做到这一点 我曾想过通过封装类型来隐藏类型,而现在我正在封装数据类型以进行反射。我在这里玩了一些想法,

我想知道是否有一些很好的解决方案来处理不可导入IDL的复杂类型。我最担心的是在simmed指令中使用_m128向量类型,即XMVECTOR__midl编译器无法识别declspec,因此无法导入_m128数据类型。我研究过使用wire_marshal来实现这一点,但我认为它需要了解uu m128类型的typedef。如果有一种方法,我可以前言XMVECTOR与电线元帅一起使用,我还不知道我将如何做到这一点

我曾想过通过封装类型来隐藏类型,而现在我正在封装数据类型以进行反射。我在这里玩了一些想法,包括继承COM和C++接口。这里的一切看起来都不太有希望

很多人告诉我不要使用COM,我真的花了很多时间不编码,只是想弄明白这些东西。我的逻辑一直认为使用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;

我会编辑它或添加它作为一个评论,但可能最接近这个线程将得到一个答案。。。可能是显而易见的一个。。。。很抱歉回答我自己的问题:/

在我嘴里留下了一点有趣的味道:\

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;
我会编辑它或添加它作为一个评论,但可能最接近这个线程将得到一个答案。。。可能是显而易见的一个。。。。很抱歉回答我自己的问题:/