找回密码
 加入
搜索
楼主: 仙乃日

[AU3基础] 请教一个dllcall的写法?[已解决]

 火.. [复制链接]
发表于 2017-2-24 20:53:09 | 显示全部楼层
回复 15# nmgwddj
果然如此,又学到了。以前只知道是ptr*是直接到地址取值。原来*是引用。
那么上面的函数又可以精简了。

#NoTrayIcon
#RequireAdmin
#pre_usex64=n
#include <array.au3>
Local $array = ReadIDCardComm()
ConsoleWrite(@error & @CRLF)
_ArrayDisplay($array, @error)

Func ReadIDCardComm($iPort = 1001, $nTimeOut = 10000)
        Local $aRet = DllCall("IdReaderApiComm.dll", _
                        'int', 'ReadIDCardComm', _
                        'int', $iPort, _
                        'wstr', '', 'int*', '', _
                        'wstr', '', 'int*', '', _
                        'wstr', '', 'int*', '', _
                        'wstr', '', 'int*', '', _
                        'wstr', '', 'int*', '', _
                        'wstr', '', 'int*', '', _
                        'wstr', '', 'int*', '', _
                        'wstr', '', 'int*', '', _
                        'wstr', '', 'int*', '', _
                        'wstr', '', 'int*', '', _
                        'int', $nTimeOut)
        If Not @error Then Return $aRet
        Return SetError(@error, 0, 0)
EndFunc   ;==>ReadIDCardComm

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
 楼主| 发表于 2017-2-25 09:42:59 | 显示全部楼层
回复 16# haijie1223


    代码可以运行了,但读取出来全是乱码。
暂时使用控件对象可以正确读取了。
#PRE_UseX64=n
$IdCard = ObjCreate("IDCARDREADER.IdCardReaderCtrl.1")
$IdCard.SetTimeout(5000); //设置读取超时时间
$IdCard.SetPort(1001); //设置 com 口号或 usb 后号
$IdCard.SetPicPath(@ScriptDir & "\ZP.bmp")
$iRet=$IdCard.ReadIDCard(); //开始读取
If $iRet<>0 Then 
MsgBox(0,0,$IdCard.GetErrMsg())
Else
Local $Name=$IdCard.GetName(); //姓名
Local $Nation=$IdCard.GetNation(); //民族
Local $Address=$IdCard.GetAddress()
Local $IDNo=$IdCard.GetIDNo()
Local $Sex=$IdCard.GetSex()
Local $Birthday=$IdCard.GetBirthday()
MsgBox(0,"身份证信息", $Name & @CRLF & $Nation & @CRLF & $Address & @CRLF & $IDNo & @CRLF & $Sex & @CRLF & $Birthday)
EndIf
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-12-22 22:13 , Processed in 0.065851 second(s), 14 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表