vb调用动态库问题
时间:2011-12-01
来源:互联网
dephi:
function Read_Guest_Card(
AReaderType,
ACardType,
APort,
ASector,
ABlock:Byte;
AHotelPwd:Pchar;
var ALockNo,
AStartSuite,
AEndSuite,
ACardID,
ASubCardID:integer;
ATime:Pchar
):integer; stdcall; External DLL_Name;
vb:
Public Declare Function Adx_Read_Guest_Card Lib "dll_name.dll" Alias "Read_Guest_Card" (ByVal AReaderType As Byte, ByVal ACardType As Byte, ByVal APort As Byte, ByVal ASector As Byte, ByVal ABlock As Byte, ByVal AHotelPwd As String, ByVal ALockNo As Long, ByVal AStartSuite As Byte, ByVal AEndSuite As Byte, ByVal ACardID As Long, ByVal ASubCardID As Long, ByVal ATime As String) As Byte
vb调用
Dim ALockNo As Byte
Dim AStartSuite As Byte
Dim AEndSuite As Byte
Dim ACardID As Integer
Dim ASubCardID As Integer
Dim ATime As String * 11
Dim iRet As Byte
AdxLockType=1
AdxCardType=1
ComPort=1
HotelCode = "12345678"
iRet = Adx_Read_Guest_Card(AdxLockType, AdxCardType, ComPort, IIf(AdxCardType = 1, 3, 5), 0, HotelCode, ALockNo, AStartSuite, AEndSuite, ACardID, ASubCardID, ATime)
执行这个函数的时候直接崩毁掉了
function Read_Guest_Card(
AReaderType,
ACardType,
APort,
ASector,
ABlock:Byte;
AHotelPwd:Pchar;
var ALockNo,
AStartSuite,
AEndSuite,
ACardID,
ASubCardID:integer;
ATime:Pchar
):integer; stdcall; External DLL_Name;
vb:
Public Declare Function Adx_Read_Guest_Card Lib "dll_name.dll" Alias "Read_Guest_Card" (ByVal AReaderType As Byte, ByVal ACardType As Byte, ByVal APort As Byte, ByVal ASector As Byte, ByVal ABlock As Byte, ByVal AHotelPwd As String, ByVal ALockNo As Long, ByVal AStartSuite As Byte, ByVal AEndSuite As Byte, ByVal ACardID As Long, ByVal ASubCardID As Long, ByVal ATime As String) As Byte
vb调用
Dim ALockNo As Byte
Dim AStartSuite As Byte
Dim AEndSuite As Byte
Dim ACardID As Integer
Dim ASubCardID As Integer
Dim ATime As String * 11
Dim iRet As Byte
AdxLockType=1
AdxCardType=1
ComPort=1
HotelCode = "12345678"
iRet = Adx_Read_Guest_Card(AdxLockType, AdxCardType, ComPort, IIf(AdxCardType = 1, 3, 5), 0, HotelCode, ALockNo, AStartSuite, AEndSuite, ACardID, ASubCardID, ATime)
执行这个函数的时候直接崩毁掉了
作者: sunghj 发布时间: 2011-12-01
几乎可以肯定是你都函数声明有问题导致了内存读写错误, 所以程序崩溃。这是DLL函数运用不当的典型问题。
问题还是要修改你的函数声明。
问题还是要修改你的函数声明。
作者: Veron_04 发布时间: 2011-12-01
太疯狂了,这么一堆参数
建议通过文件作为信息传递。将所有参数都写入到一个文件中,这样传递一个文件过去就行了。真乱,不敢再看了。
建议通过文件作为信息传递。将所有参数都写入到一个文件中,这样传递一个文件过去就行了。真乱,不敢再看了。
作者: sysdzw 发布时间: 2011-12-01
动态库是别人的,delphi调用正常,但是vb崩溃,刚才没说清
作者: sunghj 发布时间: 2011-12-01
delphi调用dll代码
Time:pchar;
tmpTime:string;
HotelPwd:array[0..8] of char;
rt,LockNo,CardID,SubCardID,StartSuite, EndSuite:integer;
LockNo:=0;
CardID:=0;
SubCardID:=0;
StartSuite:=0;
EndSuite:=0;
GetMem(Time,11);
StrPCopy(HotelPwd, Edit2.Text);
rt:=Read_Guest_Card(FReaderType,FCardType, FPortNo,FSector,FBlock,@HotelPwd,
LockNo,StartSuite,EndSuite,CardID,SubCardID,Time);
Time:pchar;
tmpTime:string;
HotelPwd:array[0..8] of char;
rt,LockNo,CardID,SubCardID,StartSuite, EndSuite:integer;
LockNo:=0;
CardID:=0;
SubCardID:=0;
StartSuite:=0;
EndSuite:=0;
GetMem(Time,11);
StrPCopy(HotelPwd, Edit2.Text);
rt:=Read_Guest_Card(FReaderType,FCardType, FPortNo,FSector,FBlock,@HotelPwd,
LockNo,StartSuite,EndSuite,CardID,SubCardID,Time);
作者: sunghj 发布时间: 2011-12-01
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28