- PR -

.NETのVBからVC++で作成したDLLを呼び出す

1
投稿者投稿内容
未記入
会議室デビュー日: 2004/02/25
投稿数: 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

スキルアップ/キャリアアップ(JOB@IT)