Re: VBからVC作成のDLLにユーザー定義型の配列を渡すには


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

Posted by Uz on 2000/03/04 01:31:34

In Reply to: VBからVC作成のDLLにユーザー定義型の配列を渡すには Posted by nao on 2000/03/03 15:24:10


    > 初めまして。naoと申します。
    > どうぞ、宜しくお願いします。m(_ _)m
    どうも。こちらこそ。

    > 1.メンバーはすべて文字列を扱う
    > 2.ユーザー定義型の配列を使いたい
    > (DLLの作り直しを避けるため)
    >
    > さらにこのような条件があるので、それを加味して
    > ヘルプを読みましたが、配列の場合・ユーザー定義型の場合・
    > 文字列の場合......とすべてのケースを試してみたのですが、
    > うまくいきませんでした。
    >
    > どなたかご存知の方、いらっしゃいましたら、
    > ご返答、宜しくお願いします。

    1はこんなんでいけそうですが
    ---- VC -----
    typedef struct {
    LPSTR f1;
    LPSTR f2;
    } UT_TYPE;

    extern __declspec(dllexport)
    LONG TestFunc(CONST UT_TYPE* m)
    {
    MessageBox(NULL, m->f1, m->f2, MB_OK);
    return 0;
    }

    ---- VB -----
    Private Type UT
    f1 As String
    f2 As String
    End Type

    Private Declare Function TestFunc Lib "UDT4VB.dll" (m As UT) As Long

    Private Sub Command1_Click()
    Dim a As UT
    a.f1 = "Sample"
    a.f2 = "Hello!!"
    Call MsgBox(TestFunc(a), vbOKOnly, "This is VB MsgBox")
    End Sub

    2はちょっとわかりません。m(_ _)m

    ほかの方法としてはグローバルなメモリハンドルを使って
    キャストするとかもできそうですね。


記事スレッド一覧