0

以下に定義されているように、複数のデータ型を持つオブジェクトを COM オブジェクトに渡す方法を探しています...

これは COM オブジェクト インターフェイスです。

[id(0x00000004), helpstring("finds the next best item")]
unsigned long GetNextItem([in, out] SAFEARRAY(VARIANT) Content);

これは、COM オブジェクトに渡す必要がある配列です。

content[0][0] = 0.0 
content[0][1] = 1   
content[0][2] = 1   
content[0][3] = 1      
content[0][4] = -1  
content[0][5] = 0.0 
content[0][6] = 0.0

2 つの問題があります。

  1. 複数のデータ型を含むことができる C# 4.0 でのオブジェクトの作成。
  2. そのパブリック インターフェイスを介してそのオブジェクトを COM オブジェクトに渡します。

これは私が乗り越えることができないエラーです:

SafeArrayTypeMismatchException{"指定された配列は予期された型ではありませんでした。"}

どんな助けでも大歓迎です!

4

1 に答える 1

2
content[0][0] = 0.0 

これはジャグ配列であり、SafeArray に変換できません。代わりに、多次元配列を作成する必要があります。

var content = new object[42, 666];
content[0, 0] = 0.0;
于 2012-07-18T18:08:20.710 に答える