下面的是dll中函数,在用vb调用它是在参数的类型上还有什么要变化的吗?我按照函数要求的类型调用后老运行到该函数时出现错误,是不c语言中long和double要在vb中定义位其他格式啊?请高手指点指点!!!我的vb程序上实在是找不出什么错误,高手帮忙谢谢!!
bool WtSys_GetData(int VehicleID ,int TransNum ,long GrossWeight,int AxisCount, double Speed,double Acceleration, int Direction)
参数: int VehicleID (缓存的车辆序号(1、2、…));
返回值:
int TransNum (流水号);
long GrossWeight (总重);
int AxisCount (轴组数);
double Speed (速度);
double Acceleration (加速度);
int Direction (行驶方向 0---正常行驶 1---倒车); true 取数据成功;
false 取数据失败。
vb调用程序如下:
Private Declare Function WtSys_GetData Lib "C:\WtSys_Dll.dll" _
(ByVal VehicleID As Integer, ByVal TransNum As Integer, _
ByVal GrossWeight As Long, ByVal AxisCount As Integer, _
ByVal Speed As Double, ByVal Acceleration As Double, _
ByVal Direction As Integer) As Boolean WtSys_GetData VehicleID, TransNum, GrossWeight, AxisCount, Speed, Acceleration, Direction
Text1.Text = Text1.Text & "流水号:" & TransNum & vbCrLf
Text1.Text = Text1.Text & 总重:" & GrossWeight & vbCrLf
Text1.Text = Text1.Text & "轴组数:" & AxisCount & vbCrLf
Text1.Text = Text1.Text & "速度:" & Speed & vbCrLf
Text1.Text = Text1.Text & 加速度:" & Acceleration & vbCrLf
Text1.Text = Text1.Text & "方向:" & Direction & vbCrLf
bool WtSys_GetData(int VehicleID ,int TransNum ,long GrossWeight,int AxisCount, double Speed,double Acceleration, int Direction)
参数: int VehicleID (缓存的车辆序号(1、2、…));
返回值:
int TransNum (流水号);
long GrossWeight (总重);
int AxisCount (轴组数);
double Speed (速度);
double Acceleration (加速度);
int Direction (行驶方向 0---正常行驶 1---倒车); true 取数据成功;
false 取数据失败。
vb调用程序如下:
Private Declare Function WtSys_GetData Lib "C:\WtSys_Dll.dll" _
(ByVal VehicleID As Integer, ByVal TransNum As Integer, _
ByVal GrossWeight As Long, ByVal AxisCount As Integer, _
ByVal Speed As Double, ByVal Acceleration As Double, _
ByVal Direction As Integer) As Boolean WtSys_GetData VehicleID, TransNum, GrossWeight, AxisCount, Speed, Acceleration, Direction
Text1.Text = Text1.Text & "流水号:" & TransNum & vbCrLf
Text1.Text = Text1.Text & 总重:" & GrossWeight & vbCrLf
Text1.Text = Text1.Text & "轴组数:" & AxisCount & vbCrLf
Text1.Text = Text1.Text & "速度:" & Speed & vbCrLf
Text1.Text = Text1.Text & 加速度:" & Acceleration & vbCrLf
Text1.Text = Text1.Text & "方向:" & Direction & vbCrLf
解决方案 »
- 一个VB程序已经关联TXT,应该如何打开呢?
- CallByName 中的Check问题
- installshield做的安装程序运行时图标怎么改?
- VB访问oracle时查询条件如果写?
- VB中如何将EXCEL数据存为dbf数据格式
- vb中对URL进行编码的函数的是什么啊?
- 这款软件是VB设计的,大家觉得怎样?
- 求助adodc控件-2147217900(80040e14)对象refresh的方法 IAdodc 失败
- 谁知道哪里有LECCO SQL Expert下载,或者类似的软件,多谢了
- 悬赏300分:求最优VB算法》》如何从一封闭曲线(曲线轨迹保存在一2维数组中)中求出它的几何重心坐标以及短径和长径的四个点的坐标!
- vb如何将生成的两个EXECL的内容进行比较?
- 二个问题:1如何点击Radio?2如何在程序中间判断网页已经结束?
ByRef GrossWeight As Long, ByRef AxisCount As Long, ByRef Speed As Double, ByRef Acceleration As Double,
ByRef Direction As Long) As Long
您能说一下什么时候用byval和byref吗?通过什么来判断用哪一个?
输入参数一般是通过传值,所以用 Byval;输出参数必须传址(指针),所以用 Byref(但字符串例外,因为 VB 的字符串传的已经是指针,用 ByVal)。我上面代码中仅仅是猜测。在 C 代码中应该对指针加 * 号的,一看便知。