Domanda

Vorrei sapere se forse ci sono alcune buone soluzioni per la gestione tipi complessi non importabili in IDL. La mia più grande preoccupazione sta usando tipi _m128 vettore per le istruzioni simmed IE. XMVECTOR. __declspec non viene riconosciuto dal compilatore MIDL quindi l'importazione del tipo di dati __m128 è fuori questione. Ho guardato in utilizzando wire_marshal per fare questo, ma penso che deve essere consapevole del typedef del tipo __m128. Se c'è un modo per foreword_declare XMVECTOR per l'uso con wire_marshal non ho la più pallida idea di come avrei fatto così.

Ho pensato di nascondere il tipo incapsulando esso che sarà già essere che sto incapsulare i tipi di dati per la riflessione. Ho giocato in giro con un paio di idee qui tra cui eredita da entrambi COM e le interfacce C ++. Niente qui sembrava troppo promettente.

Un sacco di persone mi hanno detto di non utilizzare COM e sinceramente hanno speso un sacco di ore, non di codifica e solo cercando di capire questa roba. La mia logica continua a vedere un sacco di vantaggi di utilizzare COM e le alternative tra cui MYCOM aspetto altrettanto in termini di tempo e crivellata di problemi. Se questo è il mio più grande problema con l'utilizzo COM dovrei tenere prefazione in movimento o sono le soluzioni andando a rallentare questa applicazione, tenendo presente la sua dipendenza da presentazione grafica e la modellazione computazionale tempo reale? Sto cercando di fare cose su scala di rendere le aziende agricole o di nubi o qualcosa del genere ... parlo grande e so che sono niubbo quindi per favore, non cercando di impressionare solo cercando di diventare informato ... ho fatto un sacco della ricerca!

thx, BekaD:

È stato utile?

Soluzione

lascia un po 'di un gusto divertente nella mia bocca: \

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;

I avrebbe modificato in o aggiunto come un commento, ma probabilmente il più vicino questa discussione verrà a una risposta ... probabilmente la più ovvia .... dispiace per rispondere alla mia domanda: /

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top