VB6.0中使用动态库,“ByRef类型不符”到底是怎么回事?

cbings 2009-03-16 07:30:06
遇到了这样一个问题,实在找不出原因,望高手指点。

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类型了呀!
...全文
188 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
cbings 2009-03-16
  • 打赏
  • 举报
回复
果然可以,谢谢谢谢!
clear_zero 2009-03-16
  • 打赏
  • 举报
回复
把参数a,b,c,x都改成数组
东方之珠 2009-03-16
  • 打赏
  • 举报
回复
把参数a,b,c,x都改成数组:
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 

7,763

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧