VB调用delphi动态库问题!
Delphi动态库相关代码:
.......
procedure ArrayTest(var aa:Array of byte);stdcall;
.......
procedure ArrayTest(var aa:Array of byte);stdcall;
begin
//代码
end;
VB应用相关代码:
//我用的第一种调用方法。
Private Declare Sub ArrayTest Lib "..\Project1.dll" (aa() As Byte)
Private Sub Command1_Click()
.......
Dim rr() As Byte
.......
Call ArrayTest(rr)
End Sub
在vb应用程序中调用delphi动态库,执行Command1_Click提示“Bad Dll calling convention”错误,点结素后提示“该内存不能为‘read’”直接弹出了VB运行环境。
//我用的第二种调用方法。
Private Declare Sub ArrayTest Lib "..\Project1.dll" (aa() As Byte)
Private Sub Command1_Click()
.......
Dim rr() As Byte
.......
Call ArrayTest(rr(0))
End Sub
在vb应用程序中调用delphi动态库,执行Command1_Click提示“TYpe mismatch: array or user-defined type expected”错误,点确定后回到运行环境,还是提示相同的错误!
问题点数:80、回复次数:7Top
1 楼rainstormmaster(暴风雨 v2.0)回复于 2006-03-06 22:28:56 得分 50
这样试试:
Private Declare Sub ArrayTest Lib "..\Project1.dll" (aa As Byte)
Private Sub Command1_Click()
.......
Dim rr() As Byte
.......
Call ArrayTest(rr(0))
End Sub
Top
2 楼lily_no(丽丽的新衣服)回复于 2006-03-07 08:43:05 得分 0
这个也实验过了
提示“subscript out of range”错误Top
3 楼of123()回复于 2006-03-07 09:10:47 得分 30
Private Declare Sub ArrayTest Lib "..\Project1.dll" (aa As Byte)
Private Sub Command1_Click()
.......
Dim rr(1024) As Byte
.......
Call ArrayTest(rr(0))
End Sub
Top
4 楼lily_no(丽丽的新衣服)回复于 2006-03-07 09:21:53 得分 0
to:of123() 用你的方法
提示“bad dll calling convention”错误
Top
5 楼lily_no(丽丽的新衣服)回复于 2006-03-07 14:15:18 得分 0
upTop
6 楼rainstormmaster(暴风雨 v2.0)回复于 2006-03-07 14:40:25 得分 0
//这个也实验过了
提示“subscript out of range”错误
这个应该是你没有redim的缘故
Top
7 楼lily_no(丽丽的新衣服)回复于 2006-03-07 15:29:29 得分 0
应该redim多少????初始数组多大应该???
这样试试:
Private Declare Sub ArrayTest Lib "..\Project1.dll" (aa As Byte)
Private Sub Command1_Click()
.......
Dim rr() As Byte
.......
Redim rr(1024)
Call ArrayTest(rr(0))
End Sub
直接弹出了VB运行环境!Top




