我想知道是否有一些很好的解决方案来处理不可导入IDL的复杂类型。我最大的担心是使用_M128矢量类型进行模拟说明,即。 XMVECTOR。 __DECLSPEC未经MIDL编译器识别,因此导入__M128数据类型的问题不足。我考虑使用Wire_marshal来做到这一点,但我认为它需要意识到__M128类型的Typedef。如果有一种方法可以使用xmvector xmvector供wire_marshal一起使用,我就不会对如何做到这一点。

我想到了通过封装它来隐藏该类型的原因,即我已经将数据类型封装以进行反射。我在这里玩了一些想法,包括从COM和C ++接口继承。这里没有什么看起来太希望了。

很多人告诉我不要使用com,老实说,我花了很多时间不编码,只是试图弄清楚这些东西。我的逻辑不断看到使用COM和包括Mycom外观在内的替代方案的好处,就像耗时和充满问题一样。如果这是我使用COM的最大问题,我应该继续移动前言,还是解决该应用程序会减慢该应用程序,请记住它依赖图形显示和实时计算建模?我正在考虑按规模渲染农场或云或类似的东西做一些事情...我说话很大,我知道我是菜鸟,所以请不要打动只是想知道知情...我做了很多事情研究!

Thx,Bekad:

有帮助吗?

解决方案

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

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