質問

COMメソッドに合格するためにSafearrayを作成する必要があります。
C#でSafearrayを作成/維持/破壊するにはどうすればよいですか?

私は以前にSafearraysに出会ったことがなく、Googleの簡単な検索であまり見つけることができなかったので、どんな助けも感謝しています。

編集:サンプルコードの追加:

comメソッド署名

[id(0x000000d5)]
HRESULT GetTags(
                [in] SAFEARRAY(long) buffer, 
                [out, retval] long* retval);

C#の生成されたインターポップメソッド

int GetTags(System.Array buffer)
    Member of Cwise.IUser

したがって、この場合、Safearrayを作成する必要がありますか、それとも通常の.NET配列をCOMメソッドgetTagsに単純に渡すことができますか?

役に立ちましたか?

解決

このためにそのようなコードを使用してください

Array ar = Array.CreateInstance(typeof (int), 500);

それ以外の typeof(int) 独自のデータ型を使用してください。COMオブジェクトは、どのタイプが期待しているかを言う必要があります。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top