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类型了呀!
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类型了呀!
...全文
相关推荐
vb6.0专用精美图标(方便、直接使用)
使用“vb6.0精美图标bmp(直接用)”这样的资源,可以显著提高应用程序的视觉吸引力,同时减少开发者的工作负担。
VB6.0与三菱FX3U通讯实例
动态库测试文件“plc通讯动态库测试vb6”可能是一个包含了与PLC通信的VB6.0示例代码或动态链接库(DLL)。DLL可以封装通信逻辑,使得应用代码更简洁。
VB6.0调用C# Dll解决方法
本文将详细解释如何使用VB6.0调用由C#编写的DLL动态链接库,以及在这一过程中涉及到的关键步骤和知识点。首先,我们要了解VB6.0和C#之间的差异。
VB API 编程声明函数时注意使用ByVal和ByRef.doc
### VB API 编程中ByVal与ByRef的使用及注意事项#### 一、引言在使用Visual Basic (VB) 进行API编程时,正确处理参数传递方式至关重要。
VB.net中ByVal ByRef ;形参 实参 区别的描述,带源代码
`ByVal`和`ByRef`是VB.NET中的两个参数修饰符,它们定义了函数或过程如何处理传递给它们的参数。1. `ByVal`关键字: 当使用`ByVal`关键字时,参数被传递为值拷贝。


VB基础类
