VB6.0中使用动态库,“ByRef类型不符”到底是怎么回事?
遇到了这样一个问题,实在找不出原因,望高手指点。
VC中动态库函数是这样定义的:
int _stdcall jlplq(double a[],double b[],double c[],int m,int n,double x[])
{
}
VB中这样引用:
module1中:
Public Declare Function jlplq Lib "Simplex.dll" (ByRef a As Double, ByRef b As Double, ByRef c As Double, ByVal m As Integer, ByVal n As Integer, ByRef x As Double) As Integer
Form1中:
Private Sub Command1_Click()
Dim i As Integer
Dim x(0 To 5) As Double
Dim a(0 To 17) As Double
Dim b(0 To 2) As Double
Dim c(0 To 5) As Double
a(0) = 1#
a(1) = 2#
a(2) = 7#
a(3) = 1#
a(4) = 0#
a(5) = 0#
a(6) = 1#
a(7) = 4#
a(8) = 13#
a(9) = 0#
a(10) = 1#
a(11) = 0#
a(12) = 0#
a(13) = 2#
a(14) = 8#
a(15) = 0#
a(16) = 0#
a(17) = 1#
b(0) = 10#
b(1) = 18#
b(2) = 13#
c(0) = -4#
c(1) = -9#
c(2) = -26#
c(3) = 0#
c(4) = 0#
c(5) = 0#
i = jlplq(a, b, c, 3, 3, x)
Me.Text1 = x(0)
Me.Text2 = x(1)
Me.Text3 = x(2)
Me.Text4 = x(3)
Me.Text5 = x(4)
Me.Text6 = x(5)
End Sub
出错信息:ByRef参数类型不符,光标提示在jlplq函数的“a”处。到底是怎么回事?我把a都定义成double类型了呀!