Question

Je voudrais savoir s'il y a peut-être quelques bonnes solutions pour la manipulation des types complexes non importables en IDL. Ma plus grande préoccupation utilise les types de vecteurs _m128 pour les instructions simmed ie. XMVECTOR. __declspec est pas reconnu par le compilateur MIDL afin d'importer le type de données __m128 est hors de question. Je regardais en utilisant wire_marshal pour faire cela, mais je pense qu'il a besoin d'être au courant de la typedef du type __m128. S'il est possible que je peux foreword_declare XMVECTOR pour une utilisation avec wire_marshal Je n'ai pas la moindre idée sur la façon dont je le ferais.

J'ai pensé à cacher le type en l'encapsulant qui sera déjà être que j'encapsulant les types de données pour la réflexion. Je l'ai joué avec quelques idées ici, y compris héritant de deux COM et les interfaces C de. Rien ici semblait trop prometteur.

Beaucoup de gens me l'ont dit de ne pas utiliser COM et j'ai honnêtement passé beaucoup d'heures non codage et juste essayer de comprendre ce genre de choses. Ma logique ne cesse de voir beaucoup d'avantages à l'utilisation de COM et les alternatives, y compris Mycom regarder aussi beaucoup de temps et criblé de problèmes. Si cela est mon plus gros problème avec l'utilisation de COM dois-je continuer à aller de l'avant-propos ou sont les solutions vais ralentir cette application, en gardant à l'esprit sa dépendance à l'égard de la modélisation informatique présentation graphique et en temps réel? Je cherche à faire des choses à l'échelle de rendre les exploitations agricoles ou des nuages ??ou quelque chose du genre ... je parle grand et je sais que je suis Noob donc s'il vous plaît, ne cherche pas à impressionner regarder juste pour être informé ... Je l'ai fait beaucoup de la recherche!

thx, BekaD:

Était-ce utile?

La solution

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;

J'aurais édité ou ajouté comme un commentaire mais probablement le plus proche ce fil va venir à une réponse ... probablement la plus évidente .... désolé pour répondre à ma propre question: /

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top