- - PR -
.NETのVBからVC++で作成したDLLを呼び出す
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2004-02-25 17:37
.NETのVBからVC++で作成したDLLを呼び出したいのですがVB側でDLLを呼び出すと
System.ArgumentException' のハンドルされていない例外が Test.exe で発生しました。 追加情報 : パラメータが間違っています。 となります。 どこか間違っている所はあるでしょうか? よろしくお願いします。 VB側のコード-------------------------------------------------------------------> <StructLayout(LayoutKind.Sequential)> _ Public Structure ST1 Public d As Short End Structure <StructLayout(LayoutKind.Sequential)> _ Public Structure ST2 <VBFixedString(4), MarshalAs(UnmanagedType.ByValTStr, SizeConst:=4)> _ Public a As String <VBFixedString(4), MarshalAs(UnmanagedType.ByValTStr, SizeConst:=4)> _ Public b As String Public c() as ST1 Sub Init() ReDim c(1) End Sub End Structure Declare Function Func Lib "test.dll" Alias "Func" (ByRef st As ST2) As Integer Sub Main() Dim st As ST2 st.Init() Func(st) End Sub VB側のコード-------------------------------------------------------------------> DLL側のコード------------------------------------------------------------------> typedef struct { short d; }ST1; typedef struct { char a[3]; char b[3]; ST1 c[2]; }ST2; int __stdcall Func ( ST2 *t ){ strcpy(t->a ,"AA"); strcpy(t->b ,"BB"); t->c[0].d = 0; t->c[1].d = 1; return 0; } DLL側のコード-----------------------------------------------------------------> |
1