質問
IDLにインポートできない複雑なタイプを処理するための優れたソリューションが多分あるかどうかを知りたいです。私の最大の懸念は、Simmed命令IEに_M128ベクトルタイプを使用することです。 xmvector。 __declspecはMidlコンパイラによって認識されないため、__m128データ型をインポートすることは問題外です。 Wire_marshalを使用してこれを行うことを検討しましたが、__m128タイプのtypedefに注意する必要があると思います。 wire_marshalで使用するためにforword_declare xmvectorをforword_declare xmvectorができる方法がある場合、私はそうする方法について最も霧がありません。
私は、そのタイプをカプセル化することで、そのタイプを隠すことを考えました。ここでは、COMとC ++の両方のインターフェイスから継承するなど、ここでいくつかのアイデアをプレイしました。ここではあまりにも有望に見えませんでした。
多くの人がComを使用しないように私に言ってきました。私は正直に言って、コーディングではなく多くの時間を費やして、このようなものを理解しようとしています。私の論理では、COMを使用することに大きな利点があり、Mycomなどの代替品が時間がかかり、問題に悩まされているように見えます。これがCOMの使用に関する私の最大の問題である場合、グラフィカルなプレゼンテーションとリアルタイムの計算モデリングへの依存を念頭に置いて、序文を動かし続けるか、ソリューションがこのアプリケーションを遅くする必要がありますか?私はレンダリング農場や雲などの規模で何かをすることを検討しています...私は大きく話します、そして私はnoobであることを知っています。研究の!
thx、bekad:
解決
私の口に少し面白い味を残します:
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;
私はそれを編集するか、コメントとして追加したでしょうが、おそらくこのスレッドが答えに来るでしょう...おそらく明らかなものです....私自身の質問に答えてすみません:/