tagCANDY CGI VBレスキュー(花ちゃん)の Visual Basic 6.0用 掲示板
VBレスキュー(花ちゃん)の Visual Basic 6.0用 掲示板
[ツリー表示へ]  [ワード検索]  [Home]

タイトル Re^5: VB6.0のExeとVC++6.0のDLLの文字列
投稿日: 2008/05/21(Wed) 14:42
投稿者VB
上記の件は自己解決致しました。
ありがとうございました。。
お騒がせ致しました。。

そして、新たな問題が!(^^;
----------VB----------------------------------------------------------------
☆標準モジュール
Public Type DLL
  flg1 As String
    flg2 As String
End Type
Public Declare Function test Lib "test.dll" (PINFO As DLL) As Long
☆フォーム
Dim PINFO(0) As DLL
Dim rtn As Long
    PINFO(0).flg1 = "X"
    PINFO(0).flg2 = "Y"
rtn = test(PINFO(0))
Text1.Text = rtn
--------------------------------------------------------------------------------
----------------VC++------------------------------------------------------------
typedef struct DLL{
    char    *flg1;
    char    *flg2;
};

_declspec(dllexport) int WINAPI test(const DLL* PINFO)
{
    if ((*(PINFO->flg1) != 'X') && (*(PINFO->flg1) != 'Y'))
    {
        return 1;
    }

    if ((*(PINFO->flg2) != 'X') && (*(PINFO->flg2) != 'Y'))
    {
        return 2;
    }
    return 0;
}

上記のようにすることによって
PINFO->flg1 = "X"
PINFO->flg2 = "Y"
と入るようになったのですが。
そもそもこの構造体で行いたかったことが
VBで
Dim PINFO(1) As DLL
Dim rtn As Long
    PINFO(0).flg1 = "X"
    PINFO(0).flg2 = "Y"
    PINFO(1).flg1 = "X"
    PINFO(1).flg2 = "Y"
↑このような複数のテーブルを渡したいのですが、
上記のように定義したときまた値の取得仕方がいけないのか
構造体に変な値が入ってきてしまいます。
例となるプログラムがありましたら宜しくお願いいたします。

- 関連一覧ツリー をクリックするとツリー全体を一括表示します)

古いスレッドにレスはつけられません。