麻烦大师帮我查错,将一段VB声明如何转换成DELPHI代码
VB代码
函数声明
private Declare Function WriteDataMulti Lib "VestoreForVb.dll" (sPointName() As String, ByRef dValue As Double, ByRef lTime As Long, ByVal lCount As Long) As Long
Dim lTag(2) As String
Dim lValue(2) As Double
Dim lTime(2) As Long
lTag(0) = "a"
lTag(1) = "b"
lTag(2) = "c"
lValue(0) = 123
lValue(1) = 234
lValue(2) = 345
lTime(0) = fCalDateLong(Now)
lTime(1) = fCalDateLong(Now)
lTime(2) = fCalDateLong(Now)
If WriteDataMulti(lTag(), lValue(0), lTime(0), 3) = 1 Then
MsgBox ("成功")
End If
在VB下调用正常
DELPHI代码
function WriteDataMulti(sPointName:pointer;var dValue:double;var lTime:longint;lCount:longint):longint;stdcall;external libname;
lTag:array of string;
lValue:array of double;
lTime:array of longint;
并且用setlength对这三个数组进行了赋值
Ret:=WriteDataMulti(@lTag, @lValue[0], @lTime[0], count);
结果报错,提示Extenal exception E0607363这样的错误,我已经检查过这三个数组均设好了正确的数据
怀疑声明或调用不对,请大师指点,在线等。