Re: ActiveX DLLにユーザー定義型引数


[コメントツリー表示を見る] [発言時刻順表示を見る]

Posted by Uz on 2001/03/05 22:13:42

In Reply to: ActiveX DLLにユーザー定義型引数 Posted by たぬき on 2001/03/05 15:07:14


    > そこに、パブリックファンクションを作り、
    > 引数として、ユーザー定義型の配列変数を
    > 渡したいと思っています。
    > ところがこれが、コンパイルさえとおりません。
    > 「ユーザー定義型や固定長の文字列型は、オブジェクト モジュールのパブリック メンバのデータ型として宣言することはできません。Private オブジェクト モジュールはパブリック オブジェクト モジュールのパブリック メンバとして宣言することはできません。」
    > なるメッセージが出るのです。

    VBのVerは?

    うちでやってみたが、


    ' DLL側クラス
    Option Explicit

    Public Type UZ_SAMPLE
    Name As String
    Age As Long
    End Type

    Private uzsData() As UZ_SAMPLE

    Public Function SetData(d() As UZ_SAMPLE) As Long
    Dim I As Long

    ReDim uzsData(UBound(d))
    For I = 0 To UBound(d)
    uzsData(I) = d(I)
    Next
    End Function

    Public Sub ShowData()
    Dim I As Long
    For I = 0 To UBound(uzsData)
    Debug.Print uzsData(I).Name, uzsData(I).Age
    Next
    End Sub

    ' アプリ側フォーム
    Option Explicit

    Private cSam As clsSample

    Private d(9) As UZ_SAMPLE


    Private Sub Form_Load()
    Dim I As Long

    For I = 0 To 9
    d(I).Name = "Men"
    d(I).Age = I

    Set cSam = New clsSample
    Call cSam.SetData(d)

    Next

    Call cSam.ShowData
    End Sub



    うまく動いているが。


記事スレッド一覧