function Read_EMSNR(Port: Integer; SNR: PChar; Beep: Integer):Integer; DELPHI7开发的
说明:读EM4469卡序列号函数。
参数说明:
Port: 通讯口号1、2、3、4分别代表串口COM1、COM2、COM3、COM4(范围 1------4)
SNR:卡序列号(8位字符串)
Beep:蜂鸣器蜂鸣(0代表蜂鸣,1代表不蜂鸣)
以下是DELPHI的演示例子。现在要求帮忙写一下PB9如何实现。
procedure TfrmMain.btnReadSNRClick(Sender: TObject);
var
CardSNR: array[0..3] of Byte;
i: Integer;
tmpString: string;
CardSerialNo: array[0..7] of Byte;
begin
edtCardSNR.Text := '';
if cmbReaderModel.ItemIndex = 1 then
begin
if Read_EMSNR(cmbPort.ItemIndex + 1, @CardSNR[0], cmbBeep.ItemIndex) = 0 then
begin
for i := 0 to 3 do
edtCardSNR.Text := edtCardSNR.Text + IntToHex(CardSNR[i], 2);
end else ShowMessage('读卡失败.');
end else
begin
//if Read_MFSNR(cmbPort.ItemIndex + 1, @CardSNR[0]) = 0 then
if Read_MFSNR(cmbPort.ItemIndex + 1, @CardSerialNo[0], cmbBeep.ItemIndex) = 0 then
begin
for i := 0 to 3 do
tmpString := tmpString + IntToHex(CardSerialNo[i], 2);
ShowMessage('功能卡序列号:' + tmpString);
end else ShowMessage('读卡失败.');
end;
end;
------解决方案--------------------
你需要知道这些参数的类型,然后才能声明,参考如下:
FUNCTION ulong AbortDoc(ulong hdc) LIBRARY "gdi32.dll"
FUNCTION ulong AbortPath(ulong hdc) LIBRARY "gdi32.dll"
FUNCTION ulong AbortPrinter(ulong hPrinter) LIBRARY "winspool.drv"
FUNCTION ulong AbortSystemShutdown(ref string lpMachineName) LIBRARY "advapi32.dll" ALIAS FOR "AbortSystemShutdownA"
FUNCTION ulong AccessCheck(ref SECURITY_DESCRIPTOR pSecurityDescriptor,ulong ClientToken,ulong DesiredAccess,ref GENERIC_MAPPING GenericMapping,ref PRIVILEGE_SET PrivilegeSet,ref ulong PrivilegeSetLength,ref ulong GrantedAccess,ulong Status) LIBRARY "advapi32.dll"
FUNCTION ulong AccessCheckAndAuditAlarm(ref string SubsystemName,ref Any HandleId,ref string ObjectTypeName,ref string ObjectName,ref SECURITY_DESCRIPTOR SecurityDescriptor,ulong DesiredAccess,ref GENERIC_MAPPING GenericMapping,ulong ObjectCreation,ref ulong GrantedAccess,ulong AccessStatus,ulong pfGenerateOnClose) LIBRARY "advapi32.dll" ALIAS FOR "AccessCheckAndAuditAlarmA"
FUNCTION ulong ActivateKeyboardLayout(ulong HKL,ulong flags) LIBRARY "user32.dll"
FUNCTION ulong AddAccessAllowedAce(ref ACL pAcl,ulong dwAceRevision,ulong AccessMask,ref Any pSid) LIBRARY "advapi32.dll"
FUNCTION ulong AddAccessDeniedAce(ref ACL pAcl,ulong dwAceRevision,ulong AccessMask,ref Any pSid) LIBRARY "advapi32.dll"