VB.NETからVC6.0のDLLに構造体配列を渡したい。


豊穣  2004-02-26 05:26:40  No: 53220

VB.NETからVC6.0のDLLに構造体配列を渡したいのですが
うまくいきません。

VB.NET側

    Public Structure ki
        Public a As Integer
        Public b() As Integer
        Public Sub ini()
            ReDim b(14)
        End Sub
    End Structure
    Public Declare Sub ka _
                            Lib "j.dll" _
                            Alias "B" _
                            (ByRef a As struct)

dim d as ki
s.ini()
        s.a = 1
        For b = 0 To 14
            s.b(b) = b
        Next
ka(ki)

C側
ヘッダー

typedef struct {
  INT  ucKouza;        
  INT  ucDate_Data[15];      
}F27_SAIKOUHORYUDAT,*F27_LPSAIKOUHORYUDAT;

ソース

BOOL WINAPI Baki(F27_SAIKOUHORYUDAT* ba)
{
  CHAR msg[10];
  CHAR work[50];
  int i;

  ZeroMemory( work, sizeof( work )) ;

  sprintf( work,"%d\n", ba->ucKouza );
  for(i = 0; i < 15 ;i++)
  {
    ZeroMemory( msg, sizeof( msg )) ;
    sprintf( msg,"%d\n", ba->ucDate_Data[i] );
    strcat(work,msg);
  }
         MessageBox(NULL, work, "sss", MB_OK);
  return TRUE;
}

受け渡しすると中身がぜんぜん違うものになってしまいます。
どのように変更すればいいでしょうか?


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加