2010-06-30 21 views
1

Je voudrais savoir s'il existe peut-être quelques bonnes solutions pour gérer des types complexes non importables dans IDL. Ma plus grande préoccupation est d'utiliser les types de vecteurs _m128 pour les instructions simmed. XMVECTOR. __declspec n'est pas reconnu par le compilateur midl, donc l'importation du type de données __m128 est hors de question. J'ai cherché dans l'utilisation de wire_marshal pour le faire mais je pense qu'il doit être conscient de la typedef du type __m128. S'il y a un moyen pour que je puisse utiliser foreword_declare XMVECTOR avec wire_marshal, je n'ai pas la moindre idée de comment je pourrais le faire.Types de complexes MIDL en tant que paramètres de méthode d'interface

J'ai pensé cacher le type en l'encapsulant qu'il sera déjà en train d'encapsuler des types de données pour Reflection. J'ai joué avec quelques idées ici, y compris l'héritage des deux interfaces COM et C++. Rien ici n'avait l'air trop prometteur.

Beaucoup de gens m'ont dit de ne pas utiliser COM et j'ai honnêtement passé beaucoup d'heures à ne pas coder et à essayer de comprendre ce genre de choses. Ma logique continue à voir beaucoup d'avantages à utiliser COM et les solutions de rechange, y compris MyCOM, prennent tout leur temps et sont truffées de problèmes. Si c'est mon plus gros problème avec l'utilisation de COM, est-ce que je dois continuer à faire avancer la préface ou est-ce que les solutions vont ralentir cette application, en gardant à l'esprit sa dépendance à la présentation graphique et à la modélisation computationnelle en temps réel? Je cherche à faire des trucs à l'échelle des fermes de rendu ou des nuages ​​ou quelque chose comme ça ... Je parle gros et je sais que je suis noob alors s'il te plait, n'essayant pas d'impressionner juste de m'informer ... J'ai fait beaucoup De la recherche!

thx, BekaD:

Répondre

1

laisse un peu d'un drôle de goût dans ma bouche: \

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; 

je l'aurais édité ou ajouté comme un commentaire mais probablement le plus proche ce fil viendra à une réponse ... probablement la plus évidente .... désolé d'avoir répondu à ma propre question:/