RT,SCardControl在64位WIN7下运行返回1,是个什么错误?但我在64位VISTA下,却可以跑的过,返回正确,真不知道是那出问题了,求解呀,不胜感谢!!!

解决方案 »

  1.   

    当我用SCardTransmit时,返回值为22,又是一个MSDN没有的错误值,难道这两个函数,现在WIN7都不支持了吗?
      

  2.   

    其实32位也不行,只要是WIN7就都不行,好像是Eseape通道通不了,郁闷,连接用的是SCARD_SHARE_DIRECT和SCARD_PROTOCOL_UNDEFINED,后面
    long lgRet = SCardControl(
    (SCARDHANDLE)m_Handle,
    IOCTL_CCID_ESCAPE, 
    pbCmd, 
    dwCmdLen, 
    pbRecv,
    dwRecvLen, 
    pdwRecvLen);
    求解呀...
      

  3.   

    BOOL CPCSCReader::EscapeSend(LPBYTE pbCmd, DWORD dwCmdLen, LPBYTE pbRecv, LPDWORD pdwRecvLen, DWORD dwOption)
    {
    if( pbCmd == 0 ||
    dwCmdLen == 0 ||
    pbRecv == 0 ||
    pdwRecvLen == 0)
    {
    return FALSE;
    }
    DWORD dwRecvLen = *pdwRecvLen;
    long lgRet = SCardControl(
    (SCARDHANDLE)m_Handle,
    IOCTL_CCID_ESCAPE, 
    pbCmd, 
    dwCmdLen, 
    pbRecv,
    dwRecvLen, 
    pdwRecvLen);

    return (SCARD_S_SUCCESS==lgRet);
    }