掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
VB6から自作ActiveXへ配列(文字)を渡したい (ID:63204)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
>VARIANT*で受けてはどうでしょうか? 質問する以前に参考を確認して色々と試しました。DLLでは可能でした。(MSDNにもありますよね) ActiveX コントロールでは次の通りです。 ActiveX コントロールのVC++は long CTestddCtrl::foo(VARIANT FAR* v) { SAFEARRAY* psa; if ( v->vt != ( VT_ARRAY | VT_BSTR | VT_BYREF ) ) return 1; psa = *( v->pparray ); if ( psa->cDims != 1 ) return 2; return 0; } となっています。 VB6では Private Sub Command1_Click() Dim v(2) As String v(0) = "こんにちわ" v(1) = "テスト" v(2) = "test" MsgBox Testdd1.foo(v(0)) ←ここで型が一致しません End Sub 次に MsgBox Testdd1.foo(v) ←ここで型が一致しません 次に Dim v(2) As Variant に変更した MsgBox Testdd1.foo(v) ←ここで型が一致しません 次に MsgBox Testdd1.foo(v(0)) メッセージボックスで”1”が表示 次にVC++の // if ( v->vt != ( VT_ARRAY | VT_BSTR | VT_BYREF ) ) return 1; として削除した。 MsgBox Testdd1.foo(v(0)) メッセージボックスで”2”が表示 以上まで確認しました。
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.