Frage

Ich möchte, wenn vielleicht wissen, gibt es einige gute Lösungen sind komplexe Typen nicht importierbar in IDL zu handhaben. Meine größte Sorge ist, mit _m128 Vektortypen für simmed Anweisungen, dh. XMVECTOR. __declspec nicht durch die MIDL-Compiler so den Import des Typ __m128 Daten erkannt ist nicht in Frage. Ich sah in Wire_marshal mit, dies zu tun, aber ich denke, dass es sich der typedef des __m128 Typ sein muss. Wenn es eine Art, wie ich mit XMVECTOR für foreword_declare kann Wire_marshal Ich habe nicht die leiseste, wie ich dies tun würde.

Ich habe gedacht, um die Art zu verstecken, indem sie es einkapseln, die es bereits sein wird, dass ich Datentypen für Reflexion am einkapseln. Ich habe mit ein paar Ideen, die hier einschließlich vererben sowohl von COM und C ++ Schnittstellen rumgespielt. Nichts hier sah auch vielversprechend.

haben eine Menge Leute haben mir gesagt nicht COM zu verwenden, und ich habe ehrlich viele Stunden nicht Codierung und nur versucht, dieses Zeug, um herauszufinden, ausgegeben. Meine Logik hält eine ganze Menge Vorteile zu sehen, zu COM verwenden und die Alternativen einschließlich MyCOM aussehen wie zeitraubend und mit Problemen gespickt. Wenn dies bei der Verwendung von COM mein größtes Problem ist, soll ich in Bewegung bleibe Vorwort oder werden die Lösungen für diese Anwendung verlangsamen, unter Berücksichtigung ihre Abhängigkeit von graphischer Darstellung und Echtzeit-Computermodellierung? Ich suche in Sachen tun auf der Skala von landwirtschaftlichen Betrieben oder Wolken oder etwas ähnliches zu machen ... Ich rede groß und ich weiß, ich bin Noob also bitte, nicht nur um zu beeindrucken versuchen, informiert zu werden, suchen ... Ich habe viel getan die Forschung!

thx, BekaD:

War es hilfreich?

Lösung

Blätter ein bisschen von einem komischen Geschmack im Mund: \

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;

Ich habe es bearbeitet würde oder es als Kommentar hinzugefügt, aber wahrscheinlich die am nächsten dieses Thema auf eine Antwort wird kommen ... wahrscheinlich die offensichtlichste .... sorry für meine eigene Frage zu beantworten: /

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top