掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
引数がマーシャリングした配列のVBのDLLの関数をVBAから呼び出すには? (ID:147939)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
構造体で渡すよりも、クラスで渡した方が問題が少ないような気も。 > String型の配列をマーシャリングした場合にうまくいきません。 String を BSTR にするのは分かりますが、String() を BSTR にしてはマズイかと。 > <MarshalAs(UnmanagedType.BStr)> Public x() As String VBA の配列は、COM 的には SAFEARRAY です。BSTR ではありません。 この場合、MarshalAs 指定では UnmanagedType.SafeArray を使う事になります。 しかしこれだけでは何型の配列か分からないため、さらに SafeArraySubType で VarEnum.VT_BSTR を追加してください。 http://msdn.microsoft.com/ja-jp/library/vstudio/z6cfh6e6.aspx http://msdn.microsoft.com/ja-jp/library/system.runtime.interopservices.varenum.aspx
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.