掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
引数がマーシャリングした配列のVBのDLLの関数をVBAから呼び出すには? (ID:147940)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
魔界の仮面弁士さん。 回答ありがとうございます。 教えていただきましたように以下のコードにしましたところ、エラーはでなくなりましたが、返される値が文字列ではなく数値(2183444や2183468など)になってしまっています。この原因を調べているのですが、また、教えていただきました2つのリンク先も見てみましたが内容が高度すぎてよく分かりませんでした。 ---VB.NET側DLL(プロジェクト名ClassLibrary1)--- Imports System.Runtime.InteropServices Public Class Class1 Public Structure T1 <MarshalAs(UnmanagedType.SafeArray, SafeArraySubType:=VarEnum.VT_BSTR)> Public x() As String Public y As Integer End Structure Public Sub fx(ByRef t1_o As T1) Dim i As Integer t1_o.y = 2 'DLL側で決まる値(配列サイズ) ReDim t1_o.x(t1_o.y) For i = 0 To t1_o.y - 1 t1_o.x(i) = "NO" & i Next End Sub End Class ---VBA32側--------------------------------- (前回と同じです) ------------------------------------------- よろしくお願いします。
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.