Declare Function ICC_verify Lib "crwicc.dll" (ByVal fd As Long, ByVal pin_len As Integer, ByVal pin As String) As Long接口是这样声明的Public pinVerify As Long定义了一个变量Private Sub readCard_Click()
 hport = CT_open("COM1")
 If hport <= 0 Then
    MsgBox "打开端口失败,请检查本机COM端口"
    Else
    isIC = ICC_present(hport)
     If Hex(isIC) = 9000 Then
        MsgBox "请插入IC卡"
         Else
         
         restIC = ICC_reset(hport, 2, resp)
          MsgBox resp
         If Hex(restIC) <> 9000 Then
          MsgBox "IC卡复位失败"
          Else
                pinVerify = ICC_verify(hport, 2, "ffff")
                 MsgBox Hex(pinVerify)
              
         End If
     End If
 End If
  portClose = CT_close(hport)
  If protColse <> 0 Then
    MsgBox "关闭端口失败"
  End If
  
End Subvb程序里调用为什么就返回的是失败信息呢。

解决方案 »

  1.   

    Declare Function ICC_verify Lib "crwicc.dll" (ByVal fd As Long, ByVal pin_len As Integer, ByVal pin As String) As Long 确认这个函数声明是正确的哦,在VB6里的Integer和C的Int可不是一回事,在接口函数中我是比较少见用VB6的Integer来做参数的.
      

  2.   

    补充一下 c的函数只有一个借口
    unsigned pascal ICC_verify(HANDLE fd,unsigned char pin_len,unsigned char *pin); 
    具体代码不知道指教一下该怎么在vb中声明
      

  3.   

    Declare Function ICC_verify Lib "crwicc.dll" (ByVal fd As Long, ByVal pin_len As Integer, ByVal pin As Long) As Long 
      

  4.   

    http://blog.csdn.net/slowgrace/archive/2009/04/24/4105426.aspx
      

  5.   

    楼上的大侠,我传进去的ffff是string类型的呀
      

  6.   


    用strptr把string的地址传过去。
    pin声明为long型。
    另外,我得下线了,抱歉。
    你可参考4楼那篇博文,也是不久前论坛上好些同学教给我的。
      

  7.   

    Declare Function ICC_verify Lib "crwicc.dll" (ByVal fd As Long, ByVal pin_len As long, Byref pin As String) As Long 
      

  8.   

    unsigned pascal ICC_verify(HANDLE fd,unsigned char pin_len,unsigned char *pin);Private Declare Function ICC_verify Lib "crwicc.dll" (ByVal fd As Long, ByVal pin_len As Byte, ByVal pin As String) As Long...
    pinVerify = ICC_verify(hport, len("ffff"), "ffff") 
    ...
      

  9.   

    pin_len 如果不是pin的总长度那也许就是你那个2了吧
      

  10.   

    dim s as string 
    s=chr(&HFF) & chr(&HFF)
    pinVerify = ICC_verify(hport, 2, s)