1

IDLにインポートできない複雑な型を処理するための良い解決策があるかどうか知りたいです。私の最大の関心事は、シミュレートされた命令に_m128ベクトル型を使用することです。XMVECTOR。__declspecはmidlコンパイラによって認識されないため、__m128データ型をインポートすることは問題外です。これを行うためにwire_marshalを使用することを検討しましたが、__m128タイプのtypedefを認識する必要があると思います。Wire_marshalで使用するためにXMVECTORをforeword_declareできる方法がある場合、私はそれをどのように行うかについて最も曖昧ではありません。

リフレクションのデータ型をカプセル化することになるので、型をカプセル化して非表示にすることを考えました。ここでは、COMインターフェイスとC ++インターフェイスの両方から継承するなど、いくつかのアイデアを試してみました。ここでは、あまり有望に見えたものはありません。

多くの人が私にCOMを使用しないように言ってきました、そして私は正直にコーディングせずにこのことを理解しようとして多くの時間を費やしました。私のロジックでは、COMを使用することで多くの利点が見られ続け、MyCOMを含む代替手段は、同じように時間がかかり、問題に満ちているように見えます。これがCOMの使用に関する私の最大の問題である場合、序文を動かし続ける必要がありますか、それとも、グラフィック表示とリアルタイムの計算モデリングへの依存を念頭に置いて、ソリューションによってこのアプリケーションの速度が低下しますか?レンダーファームやクラウドなどの規模で何かをすることを検討しています...私は大声で話しますが、私は初心者であることを知っています。研究の!

thx、BekaD:

4

1 に答える 1

1

私の口に少し面白い味を残します:\

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;

私はそれを編集するかコメントとして追加したでしょうが、おそらくこのスレッドが答えに最も近いでしょう...おそらく明白なもの....私自身の質問に答えてすみません:/

于 2010-06-30T05:41:08.177 に答える