質問

私を利用しようとVirtualBox COMのAPI VBoxC.dllからC#.を行った

tlbimp VirtualBox.tlb

に対するtypelibのVirtualBoxをサポート。参照の出力を組み立てのビルドが実行時に取得し SafeArrayTypeMispatchException ("仕様値の配列ませんでしたの想される型というアクセスプロパティを返す配列.

私は、例えば、 IVirtualBox.get_Machines() に定義される

[return: MarshalAs(UnmanagedType.SafeArray, SafeArraySubType=VarEnum.VT_DISPATCH)]
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime), DispId(0x60020009)]
public virtual extern IMachine[] get_Machines();

かつてはこのコマーシャルを確認してください。◆

役に立ちましたか?

解決

こちらのリンクを説明する例外: MSDN参照

の問題をスポットがSafeArraySubType、IMachine上に、IDispatch?には他にもオプションが存在VarEnumのためのIUnknown。

残念ながらまる編集ビルトインデータベース図書館を超えtlbimp吐出---

他のヒント

あなたはtlbimpとして試すことができますいくつかのコマンドラインオプションがあります。

ファイル名を指定して実行ます。tlbimp /?試してみる価値は数、1は/ sysarrayで見て、これは、異なる配列をマーシャリングし、あなたの問題を解決することがあります。

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