在好例子网,分享、交流、成长!
您当前所在位置:首页C# 开发实例C#语言基础 → SSSE32动态库&&说明文档(2018)

SSSE32动态库&&说明文档(2018)

C#语言基础

下载此实例
  • 开发语言:C#
  • 实例大小:0.22M
  • 下载次数:13
  • 浏览次数:497
  • 发布时间:2022-02-18
  • 实例类别:C#语言基础
  • 发 布 人:ben0101
  • 文件格式:.zip
  • 所需积分:2
 相关标签: 2018 SSE sss 动态库 动态

实例介绍

 【实例简介】SSSE32动态库&&说明文档(2018)


         读写器接口说明文档

 

1 、状态码

#define IFD_OK                          0    执行成功

#define IFD_ICC_TypeError -1    卡片类型不对

#define IFD_ICC_NoExist -2     无卡

#define IFD_ICC_NoPower -3     有卡未上电

#define IFD_ICC_NoResponse -4     卡片无应答

#define IFD_ConnectError -11     读卡器连接错

#define IFD_UnConnected -12    未建立连接(没有执行打开设备函数)

#define IFD_BadCommand -13     (动态库)不支持该命令

#define IFD_ParameterError -14     (发给动态库的)命令参数错

#define IFD_CheckSumError -15     信息校验和出错

 

 

 

 

Ps:卡片基本操作顺序可查看文档底部附录

 

 

2 、通用函数

 

2.1 连接读卡器.

1) long WINAPI  ICC_Reader_Open(char*  dev_Name);

2) long WINAPI  ICC_Reader_OpenEx(char*  dev_Nameunsigned int  VID, unsigned int PID);

用途:

打开指定的电脑接口.

参数:

dev_name :IN 以 0 结尾的字符串用于描述接口名字,如”USB1”.

VID:读卡器的PID,默认为 0x072F

PID:读卡器的PID,默认为 0x90D5

函数2在一台电脑上同时接多台读卡器的情况下可用,避免互相干扰。

返回值:

其值为电脑接口句柄,大于 0 表示连接设备成功,否则表示连接失败(值无意 义).

例子:

long hReader  =  ICC_Reader_Open  (“USB1”); //打开 USB1 口

long hReader  =  ICC_Reader_OpenEx  (“USB1”, 0x90D5, 0x072F ); //打开 USB1 口

 

 

2.2  long WINAPI  ICC_Reader_Close(long  ReaderHandle);

用途:

关闭已打开的电脑接口.

参数:

ReaderHandle :IN 接口句柄,由 ICC_Reader_Open函数所返回的值.

返回值:

等于 0 表示关闭设备成功,否则表示关闭失败. 例子:

long hReader  =  ICC_Reader_Open  (“USB1”); //打开 USB1 口 ICC_Reader_Close(hReader); //关闭 USB1 口

 

2.3  long WINAPI  ICC_PosBeep(long  ReaderHandle,  unsigned char time);

用途:

让读写器产生蜂鸣. 参数:

ReaderHandle:IN 接口句柄,  接口句柄由 ICC_Reader_Open函数所返回的值.

Time:IN 蜂鸣的时间,以毫秒为单位.

返回值:

等于 0 表示执行成功,否则表示执行失败. 例子:

ICC_PosBeep(hReader,  0x10); //让读写器蜂鸣.

 

2.4  long WINAPI ICC_Reader_ReadEEPROM (long ReaderHandle,int offset,int length,unsigned char *buffer);

用途:

从EEprom读取数据

参数:

ReaderHandle:IN 接口句柄;

 Offset:IN 偏移地址;

 Length:IN 要读取的数据的长度;

 Buffer:OUT 读取的数据;

  返回值:

等于 0 表示执行成功,否则表示执行失败.

 例子:

Char buff[20]={0};

Re =ICC_Reader_ReadEEPROM(hReader,0,10,buff);//表示从0位置开始读取10个字节长度的数据

 

2.5  long WINAPI ICC_Reader_WriteEEPROM (long ReaderHandle,int offset,int length,unsigned char *buffer);

用途:

往EEprom写入数据

参数:

ReaderHandle:IN 接口句柄;

 Offset:IN 偏移地址;

 Length:IN 要写入的数据的长度;

 Buffer:IN 待写入的数据;

  返回值:

等于 0 表示执行成功,否则表示执行失败.

 例子:

Char buff[20]={0};

Strcpy(buff,”1234567890”);

Re =ICC_Reader_WriteEEPROM(hReader,0,10,buff);//表示从0位置开始写入10个字节长度的数据

 

2.6  long WINAPI ICC_Reader_GetDeviceVersion(long ReaderHandle,char *Version);

 用途:

获取读写器版本

参数:

ReaderHandle:IN 接口句柄;

Version:OUT 读写器版本信息;

  返回值:

大于 0 表示执行成功,否则表示执行失败.

 

2.7  long WINAPI ICC_Reader_GetDeviceCSN(long ReaderHandle,char* dev_Ser);

用途:

获取唯一序列号,从芯片获取,全球唯一,不可更改

参数:

ReaderHandle:IN 接口句柄;

dev_Ser:OUT 设备序列号;

  返回值:

大于 0 表示执行成功,返回序列号数据长度.

 

2.8  long WINAPI ICC_Reader_GetDeviceSN(long ReaderHandle,char* dev_Ser)

用途:

获取设备序列号,可更改

参数:

ReaderHandle:IN 接口句柄;

dev_Ser:OUT 成功返回设备序列号;

  返回值:

大于 0 表示执行成功,返回序列号数据长度.

 

2.9  long WINAPI ICC_Reader_SetDeviceSN(long ReaderHandle,char* dev_Ser);

用途:

用于设置设备序列号

参数:

ReaderHandle:IN 接口句柄;

dev_Ser:IN设备序列号;

  返回值:

等于 0 表示执行成功.

  例子:

            Char buff[20]={0};

Strcpy(buff,”1234567890”);

Re = ICC_Reader_SetDeviceSN (hReader, buff);//表示将设备序列号设置为” 1234567890”

 

2.10 long WINAPI ICC_Reader_GetKeyBoardVersion(long ReaderHandle,char* ver);

用途:

用于获取密码键盘版本号

参数:

ReaderHandle:IN 接口句柄;

ver:OUT 键盘设备序列号;

  返回值:

大于 0 表示执行成功,返回版本数据长度

  

2.11 long WINAPI ICC_Reader_DisCardType(long ReaderHandle)

用途:

用于获取插入大卡座卡片类型

参数:

ReaderHandle:IN 接口句柄;

  返回值:

大于 0 表示执行成功,返回1:表示是CPU卡;2:表示是4428卡;3:表示是4442卡;其他值表示失败

  

2.12 long WINAPI ICC_Reader_GetMagCardMode(long ReaderHandle,unsigned short *Mode,unsigned short *Track,unsigned short *fOutType,unsigned short *fEnter)

用途:

用于获取磁卡输出模式

参数:

ReaderHandle:IN 接口句柄;

Mode:OUT  Mode=1 通过软件控制读取 Mode=2模拟键盘

Track:OUT 磁条轨道,当为模拟键盘输出时有效,分别对应1/2/3 全轨时为4

fOutType:OUT  输出模式   0=全部输出  1=去除起始字符   2=只输出数字

fEnter: OUT 是否换行标志   01=换行   00=不换行

  返回值:

等于 0 表示执行成功;其他值表示失败

 

2.13 long WINAPI  ICC_Reader_SetMagCardMode (long ReaderHandle,unsigned short Mode,unsigned short Track,unsigned short fOutType,unsigned short fEnter)

用途:

用于设置磁卡读卡模式

参数:

ReaderHandle:IN 接口句柄;

Mode:IN  Mode=1 通过软件控制读取 Mode=2模拟键盘

Track:IN 磁条轨道,当为模拟键盘输出时有效,分别对应1/2/3 全轨时为4

fOutType:IN 输出模式   0=全部输出  1=去除起始字符   2=只输出数字

fEnter: IN 是否换行标志   01=换行   00=不换行

  返回值:

等于 0 表示执行成功;其他值表示失败

 

2.14 long WINAPI ICC_Reader_ChangeSlot(long ReaderHandle,unsigned char slot )

  用途:

用于切换卡座(针对于我司有副卡座的设备,可以启用副卡座)

参数:

ReaderHandle:IN 接口句柄;

slot:IN  slot =0x01 设置工作卡座为主卡座,slot =0x02 设置工作卡座为副卡座(备用卡座)

  返回值:

等于 0 表示执行成功;其他值表示失败

 

 

3 、接触CPU卡操作函数

        

3.1 long WINAPI  ICC_Reader_PowerOn(long  ReaderHandle,unsigned  char ICC_Slot_No,unsigned  char*  Response)

用途:

接触 CPU 卡上电复位,返回值数据格式为十六进制

参数:

ReaderHandle:IN 接口句柄.

ICC_Slot_No:IN     0x01 :大卡座 ;0x02 :副卡座 ;0x11:SAM1卡座;0x12:SAM2卡座;0x13:SAM3卡座;0x14:SAM4卡座;

Response:OUT 上电后,卡片返回的数据. 

返回值:

大于 0 表示成功,其值为 Response 数据长度.否则表示上电失败

例子:

unsigned  char Res[256];

int  len =  ICC_Reader_PowerOn(hReader,  0x01, Res);

//大卡座CPU卡上电复位

    这里 res[0]=0x3b; res[1]=0xxx;……

 

3.2 long WINAPI  ICC_Reader_PowerOnHEX(long  ReaderHandle,unsigned  char ICC_Slot_No,unsigned  char*  Response)

用途:

接触 CPU 卡上电复位,返回值为十六进制字符串形式

参数:

ReaderHandle:IN 接口句柄.

ICC_Slot_No:IN     0x01 :大卡座 ;0x02 :副卡座 ;0x11:SAM1卡座;0x12:SAM2卡座;0x13:SAM3卡座;0x14:SAM4卡座;

Response:OUT 上电后,卡片返回的数据. 

返回值:

大于 0 表示成功,其值为 Response 数据长度.否则表示上电失败

例子:

unsigned  char Res[256];

int  len =  ICC_Reader_PowerOnHEX(hReader,  0x01, Res);

//大卡座CPU卡上电复位

这里res=”3Bxxxxx”    

 

3.3 long WINAPI  ICC_Reader_PowerOff(long  ReaderHandle,unsigned  char ICC_Slot_No);

用途:

让接触 CPU 卡下电. 参数:

ReaderHandle:IN 接口句柄.

ICC_Slot_No:IN

卡座参数,具体表示如下 

大卡座 :0x01;副卡座:0x02;SAM1:0x11;SAM2:0x12;SAM3:0x13;SAM4:0x14;

返回值

等于 0 表示下电成功,否则表示下电失败.

 

3.4 long WINAPI  ICC_Reader_GetStatus(long ReaderHandle,unsigned  char ICC_Slot_No);

用途:

获取卡座状态. 参数:

ReaderHandle :IN 接口句柄 

ICC_Slot_No:IN 卡座参数,具体表示如下 

大卡座 :0x01;副卡座:0x02;SAM1:0x11;SAM2:0x12;SAM3:0x13;SAM4:0x14;

返回值:

等于 0 表示卡座有卡,否则见状态码

例子:

int   len  =  ICC_Reader_GetStatus(hReader,  0x01); //获取大卡座状态

 

 

3.5 long WINAPI  ICC_Reader_Application(long  ReaderHandle, unsigned  char ICC_Slot_No,long Lenth_of_Command_APDU, unsigned  char*  Command_APDU, unsigned  char*  Response_APDU);

用途:

接触 CPU 卡执行 apdu 命令 

参数:

ReaderHandle IN 接口句柄.

ICC_Slot_No:IN 卡座参数,具体表示如下 

大卡座 :0x01;副卡座:0x02;SAM1:0x11;SAM2:0x12;SAM3:0x13;SAM4:0x14;

Lenth_of_Command_APDU:IN apdu命令长度

Command_APDU:IN APDU命令数据

Response_APDU:OUT apdu 命令执行后,响应的数据. 

返回值:

大于 0 表示执行成功,其值为 Response_APDU 的数据长度.否则表示执行失败

例子:大卡座CPU卡执行命令

unsigned  char cmd[8] =  {0x00,  0xa4,  0x00,  0x00,  0x02,  0xEF,  0x11};

int  len  =  ICC_Reader_Application(hReader,  0x01,  7,  cmd, PowerRes);

 

3.6 long WINAPI  ICC_Reader_ApplicationHEX(long  ReaderHandle, unsigned  char ICC_Slot_No , unsigned  char*  Command_APDU, unsigned  char*  Response_APDU);

用途:

接触 CPU 卡执行 apdu 命令 ,命令和返回数据都是以HEX字符串形式传入传出

参数:

ReaderHandle IN 接口句柄.

ICC_Slot_No:IN 卡座参数,具体表示如下 

大卡座 :0x01;副卡座:0x02;SAM1:0x11;SAM2:0x12;SAM3:0x13;SAM4:0x14;

Command_APDU:IN APDU命令数据

Response_APDU:OUT apdu 命令执行后,响应的数据. 

返回值:

大于 0 表示执行成功,其值为 Response_APDU 的数据长度.否则表示执行失败

例子:大卡座CPU卡执行命令

unsigned  char cmd[8] =  {“00a4000002EF11”};

int  len  =  ICC_Reader_ApplicationHEX(hReader,  0x01,  cmd, PowerRes);

 

3.7 long WINAPI  ICC_SetCpupara(long  ReaderHandle,unsigned  char ICC_Slot_No,unsigned  char cpupro,unsigned  char cpuetu)

用途:

设置接触 CPU 卡波特率. 参数:

ReaderHandle:IN 接口句柄.

ICC_Slot_No:IN 卡座参数,具体表示如下 

大卡座 :0x01;副卡座:0x02;SAM1:0x11;SAM2:0x12;SAM3:0x13;SAM4:0x14;

Cpupro:IN 卡的协议类型  =0 表示 T=0 协议  =1 表示 T=1 协议

Cpuetu :IN cpuetu=01、02、03、04 代表的波特率分别为 9600、19200、38400、115200

 返回值:

等于 0 表示执行成功,否则表示执行失败

例子:

//使用 T=0 协议,设置大卡座卡片波特率为 9600

ICC_SetCpupara(hReader,  0x01,  0x00,  0x01);

 

 

4 、4442卡片操作

 

4.1 long WINAPI  ICC_Reader_4442_PowerOn(long  ReaderHandle,unsigned  char *data);

用途:

4442 卡上电.

参数: 

ReaderHandle:IN 接口句柄

Data:OUT 上电返回数据内容 ,为4字节的厂商代码

返回值:

等于 0 表示执行成功.否则表示执行失败. 

例子:

unsigned  char data[256]; ICC_Reader_4442_PowerOn(hReader,  data); //4442 卡上电

data[0]=0x92;   data[1]=0x23;    data[2]=0x10;    data[3]=0x91;

 

4.2 long WINAPI ICC_Reader_4442_PowerOnHEX(long ReaderHandle,unsigned char *dataHex);

用途:

4442 卡上电,返回上电信息以HEX串形式

参数: 

ReaderHandle:IN 接口句柄

dataHex:OUT 上电返回数据内容 ,为4字节的厂商代码

返回值:

等于 0 表示执行成功.否则表示执行失败. 

例子:

unsigned  char data[256]; 

ICC_Reader_4442_PowerOnHEX(hReader,  data);//4442 卡上电

data=”92231091”;//伪代码

 

4.3 long WINAPI  ICC_Reader_4442_PowerOff(long  ReaderHandle);

用途:

4442 卡下电.

参数:

ReaderHandle :IN 接口句柄 

返回值:

等于 0 表示执行成功,否则表示执行失败.

例子:

ICC_Reader_4442_PowerOff  (hReader); //4442 卡下电

 

4.4 long WINAPI  ICC_Reader_4442_Read(long  ReaderHandle,int offset,intlen,unsigned char *data);

用途:

读取 4442 卡的指定字段内容.

参数:

ReaderHandle:IN 接口句柄

Offset:IN 起始地址

  Len :IN 数据长度

Data:OUT 数据内容(传出参数)

返回值:

等于 0 表示执行成功,否则表示执行失败.

例子:

unsigned  char data[8];

//读取 4442 卡从 0X10 位开始的 8 个字节数据 

ICC_Reader_4442_Read(hReader,  0x10,  0x08,  data);

 

 

4.5 long WINAPI ICC_Reader_4442_ReadHEX(long ReaderHandle,int offset,int len,unsigned char *dataHex);

 

用途:

读取 4442 卡的指定字段内容,返回数据以HEX串形式.

参数:

ReaderHandle:IN 接口句柄

Offset:IN 起始地址

  Len :IN 数据长度

dataHex:OUT 数据内容(传出参数)

返回值:

等于 0 表示执行成功,否则表示执行失败.

例子:

unsigned  char data[8];

//读取 4442 卡从 0X10 位开始的 8 个字节数据 

ICC_Reader_4442_ReadHEX(hReader,  0x10,  0x08,  data);

Data=”1122334455667788”;

 

4.6 long WINAPI  ICC_Reader_4442_ Write (long  ReaderHandle,int offset,intlen,unsigned char *data);

用途:

写 4442 卡的指定字段内容.

参数:

ReaderHandle:IN 接口句柄

Offset:IN 起始地址

  Len :IN 数据长度

Data:IN 数据内容(传入参数)

返回值:

等于 0 表示执行成功,否则表示执行失败.

例子:

unsigned  char data[8]={0x11,0x22,0x33,0x44,0x55,0x66,0x77,0x88};

//写4442 卡从 0X10 位开始的 8 个字节数据 

ICC_Reader_4442_Write(hReader,  0x10,  0x08,  data);

 

4.7 long WINAPI ICC_Reader_4442_WriteHEX(long ReaderHandle,int offset,int len,unsigned char *dataHex);

用途:

写 4442 卡的指定字段内容,传入待写数据为HEX串形式

参数:

ReaderHandle:IN 接口句柄

Offset:IN 起始地址

  Len :IN 数据长度

dataHex:IN 数据内容(传入参数)

返回值:

等于 0 表示执行成功,否则表示执行失败.

例子:

unsigned  char data[18]=”1122334455667788”;//伪代码

//写4442 卡从 0X10 位开始的 8 个字节数据 

ICC_Reader_4442_WriteHEX(hReader,  0x10,  0x08,  data);

 

4.8 long WINAPI  ICC_Reader_4442_Verify(long  ReaderHandle,unsigned  char*key);

用途:

4442 卡认证密钥

 参数

ReaderHandle : IN 接口句柄

Key :IN 密钥数据(传入参数)

返回值:

等于 0 表示执行成功,否则表示执行失败.

例子:

unsigned  char Key[4]={0xff,0xff,0xff};

//认证密钥,假设密钥值为ffffff 

Int re = ICC_Reader_4442_Verify (hReader,  Key);

 

4.9 long WINAPI ICC_Reader_4442_VerifyHEX(long ReaderHandle,unsigned char *keyHex);

用途:

4442 卡认证密钥,传入密钥为HEX串形式

 参数

ReaderHandle : IN 接口句柄

keyHex:IN 密钥数据(传入参数)

返回值:

等于 0 表示执行成功,否则表示执行失败.

例子:

unsigned  char Key[4]=“ffffff”;//伪代码

//认证密钥,假设密钥值为ffffff 

Int re = ICC_Reader_4442_Verify HEX(hReader,  Key);

 

4.10 long WINAPI  ICC_Reader_4442_Change(long  ReaderHandle,unsigned  char*newkey);

用途:

4442 卡修改密钥 ,修改之前需先认证密钥

参数:

ReaderHandle:IN 接口句柄 

Newkey:IN 新的密钥数据(传入参数)

返回值

等于 0 表示修改密钥成功,否则表示修改密钥失败.

例子:

unsigned  char newKey[4]={0xff,0xff,0xff};

//认证密钥,假设密钥值为ffffff 

Int re = ICC_Reader_4442_Change (hReader,  newKey);

 

4.11 long WINAPI  ICC_Reader_4442_ReadProtect(long  ReaderHandle,int offset,int len,unsigned char *data);

用途:

读 4442 卡保护数据.

参数:

ReaderHandle:IN 接口句柄

Offset:IN 起始地址 需小于32

  Len :IN 数据长度 需小于32  Offset Len 需小于32

Data:OUT 数据内容(传出参数) ,返回值为一串00或01的数据串,如果为00代表已写保护,如果为01代表未写保护。

返回值:

等于 0 表示执行成功,否则表示执行失败.

例子:

Unsigned char data[35]={0};

Int re = ICC_Reader_4442_ReadProtect(hRead,0,32,data);

 

4.12 long WINAPI  ICC_Reader_4442_WriteProtect(long  ReaderHandle,int offset,int len,unsigned char *data);

用途:

向 4442 卡写保护数据 ,即固化数据,一旦写保护,数据将不能再修改

参数:

ReaderHandle:IN 接口句柄

Offset:IN 起始地址 需小于32

  Len :IN 数据长度 需小于32  Offset Len 需小于32

Data:IN 数据内容(传入参数) ,数据值需和当前卡片内已存的数据一致,否则会导致写保护失败。

返回值:

等于 0 表示执行成功,否则表示执行失败.

例子:从20位置开始写保护

Unsigned char data[35]={0x11,0x22,0x33,0x44};

Int re = ICC_Reader_4442_WriteProtect(hRead,20,4,data);

 

4.13 long WINAPI  ICC_Reader_4442_ReadCount(long  ReaderHandle,int *count);

用途:

读取 4442 卡密钥剩余认证次

参数:

ReaderHandle:IN 接口句柄

Count:OUT 剩余密匙认证次数(传出参数) 

返回值

等于 0 表示执行成功,否则表示执行失败.

例子:

//获取 4442 卡密钥剩余认证次数 

int   pCount  = 0;

ICC_Reader_4442_ReadCount(hReader,  &pCount);

 

 

5 、4428卡片操作

 

 

5.1 long WINAPI  ICC_Reader_4428_PowerOn(long  ReaderHandle,unsigned  char *data);

用途:

4428 卡上电.

参数: 

ReaderHandle:IN 接口句柄

Data:OUT 上电返回数据内容 ,为4字节的厂商代码

返回值:

等于 0 表示执行成功.否则表示执行失败. 

例子:

unsigned  char data[256]; ICC_Reader_4428_PowerOn(hReader,  data); //4428 卡上电

 

5.2 long WINAPI ICC_Reader_4428_PowerOnHEX(long ReaderHandle,unsigned char *dataHex);

用途:

4428 卡上电,返回上电信息以HEX串形式

参数: 

ReaderHandle:IN 接口句柄

dataHex:OUT 上电返回数据内容 ,为4字节的厂商代码

返回值:

等于 0 表示执行成功.否则表示执行失败. 

例子:

unsigned  char data[256]; 

ICC_Reader_4428_PowerOnHEX(hReader,  data);//4428 卡上电

data=”92231091”;//伪代码

 

5.3 long WINAPI  ICC_Reader_4428_PowerOff(long  ReaderHandle);

用途:

4428 卡下电.

参数:

ReaderHandle :IN 接口句柄 

返回值:

等于 0 表示执行成功,否则表示执行失败.

例子:

ICC_Reader_4428_PowerOff  (hReader); //4428 卡下电

 

5.4 long WINAPI  ICC_Reader_4428_Read(long  ReaderHandle,int offset,intlen,unsigned char *data);

用途:

读取 4428 卡的指定字段内容.

参数:

ReaderHandle:IN 接口句柄

Offset:IN 起始地址

  Len :IN 数据长度

Data:OUT 数据内容(传出参数)

返回值:

等于 0 表示执行成功,否则表示执行失败.

例子:

unsigned  char data[8];

//读取 4428 卡从 0X10 位开始的 8 个字节数据 

ICC_Reader_4428_Read(hReader,  0x10,  0x08,  data);

Data={0x11,0x22,0x33,0x44,0x55,0x66,0x77,0x88};伪代码

 


【实例截图】
【核心代码】
                             


 

5.5 long WINAPI ICC_Reader_4428_ReadHEX(long ReaderHandle,int offset,int len,unsigned char *dataHex);

 

用途:

读取 4428 卡的指定字段内容,返回数据以HEX串形式.

参数:

ReaderHandleIN 接口句柄

OffsetIN 起始地址

  Len :IN 数据长度

dataHexOUT 数据内容(传出参数)

返回值:

等于 0 表示执行成功,否则表示执行失败.

例子:

unsigned  char data[8];

//读取 4428 卡从 0X10 位开始的 8 个字节数据 

ICC_Reader_4428_ReadHEX(hReader,  0x10,  0x08,  data);

Data=”1122334455667788”;

 

5.6 long WINAPI  ICC_Reader_4428_ Write (long  ReaderHandle,int offset,intlen,unsigned char *data);

用途:

写 4428 卡的指定字段内容.

参数:

ReaderHandleIN 接口句柄

OffsetIN 起始地址

  Len :IN 数据长度

DataIN 数据内容(传入参数)

返回值:

等于 0 表示执行成功,否则表示执行失败.

例子:

unsigned  char data[8]={0x11,0x22,0x33,0x44,0x55,0x66,0x77,0x88};

//写4428 卡从 0X10 位开始的 8 个字节数据 

ICC_Reader_4428_Write(hReader,  0x10,  0x08,  data);

 

5.7 long WINAPI ICC_Reader_4428_WriteHEX(long ReaderHandle,int offset,int len,unsigned char *dataHex);

用途:

写 4428 卡的指定字段内容,传入待写数据为HEX串形式

参数:

ReaderHandleIN 接口句柄

OffsetIN 起始地址

  Len :IN 数据长度

dataHexIN 数据内容(传入参数)

返回值:

等于 0 表示执行成功,否则表示执行失败.

例子:

unsigned  char data[18]=”1122334455667788”;//伪代码

//写4428 卡从 0X10 位开始的 8 个字节数据 

ICC_Reader_4428_WriteHEX(hReader,  0x10,  0x08,  data);

 

5.8 long WINAPI  ICC_Reader_4428_Verify(long  ReaderHandle,unsigned  char*key);

用途:

4428 卡认证密钥

 参数

ReaderHandle : IN 接口句柄

Key :IN 密钥数据(传入参数)

返回值:

等于 0 表示执行成功,否则表示执行失败.

例子:

unsigned  char Key[4]={0xff,0xff};

//认证密钥,假设密钥值为fffff

Int re = ICC_Reader_4428_Verify (hReader,  Key);

 

5.9 long WINAPI ICC_Reader_4428_VerifyHEX(long ReaderHandle,unsigned char *keyHex);

用途:

4428 卡认证密钥,传入密钥为HEX串形式

 参数

ReaderHandle : IN 接口句柄

keyHex:IN 密钥数据(传入参数)

返回值:

等于 0 表示执行成功,否则表示执行失败.

例子:

unsigned  char Key[4]=“ffffff”;//伪代码

//认证密钥,假设密钥值为ffffff 

Int re = ICC_Reader_4428_Verify HEX(hReader,  Key);

 

5.10 long WINAPI  ICC_Reader_4428_Change(long  ReaderHandle,unsigned  char*newkey);

用途:

4428卡修改密钥 ,修改之前需先认证密钥

参数:

ReaderHandleIN 接口句柄 

NewkeyIN 新的密钥数据(传入参数)

返回值

等于 0 表示修改密钥成功,否则表示修改密钥失败.

例子:

unsigned  char newKey[4]={0xff,0xff};

//认证密钥,假设密钥值为ffff

Int re = ICC_Reader_4428_Change (hReader,  newKey);

 

5.11 long WINAPI  ICC_Reader_4428_ReadProtect(long  ReaderHandle,int offset,int len,unsigned char *data);

用途:

读 4428 卡保护数据.

参数:

ReaderHandleIN 接口句柄

OffsetIN 起始地址 需小于1024

  Len :IN 数据长度 需小于1024  Offset Len 需小于1024

DataOUT 数据内容(传出参数) ,返回值为一串00或01的数据串,如果为00代表已写保护,如果为01代表未写保护。

返回值:

等于 0 表示执行成功,否则表示执行失败.

例子:

Unsigned char data[35]={0};

Int re = ICC_Reader_4428_ReadProtect(hRead,0,32,data);

 

5.12 long WINAPI  ICC_Reader_4428_WriteProtect(long  ReaderHandle,int offset,int len,unsigned char *data);

用途:

向 4428 卡写保护数据 ,即固化数据,一旦写保护,数据将不能再修改

参数:

ReaderHandleIN 接口句柄

OffsetIN 起始地址 需小于1024

  Len :IN 数据长度 需小于1024  Offset Len 需小于1024

DataIN 数据内容(传入参数) ,数据值需和当前卡片内已存的数据一致,否则会导致写保护失败。

返回值:

等于 0 表示执行成功,否则表示执行失败.

例子:从20位置开始写保护

Unsigned char data[35]={0x11,0x22,0x33,0x44};

Int re = ICC_Reader_4428_WriteProtect(hRead,20,4,data);

 

5.13 long WINAPI  ICC_Reader_4428_ReadCount(long  ReaderHandle,int *count);

用途:

读取 4428 卡密钥剩余认证次

参数:

ReaderHandleIN 接口句柄

CountOUT 剩余密匙认证次数(传出参数) 

返回值

等于 0 表示执行成功,否则表示执行失败.

例子:

//获取 4428 卡密钥剩余认证次数 

int   pCount  = 0;

ICC_Reader_4428_ReadCount(hReader,  &pCount);

 

24CXX卡片操作

6.1 long WINAPI ICC_Reader_24c_PowerOn(long ReaderHandle,unsigned char *data,unsigned char flag);

用途:

24CXX卡上电.

参数: 

ReaderHandleIN 接口句柄

DataOUT 上电返回数据内容 ,为4字节的厂商代码

Flag: IN  flag=0为24C01~16  flag=1为24C32~1024

返回值:

等于 0 表示执行成功.否则表示执行失败. 

6.2 long WINAPI ICC_Reader_24c_PowerOff(long ReaderHandle,unsigned char flag);

用途:

24CXX卡下电.

参数: 

ReaderHandleIN 接口句柄

Flag: IN  flag=0为24C01~16  flag=1为24C32~1024

返回值:

等于 0 表示执行成功.否则表示执行失败. 

6.3 long WINAPI ICC_Reader_24c_Read(long ReaderHandle,int offset,int len,unsigned char *data,unsigned char flag);

用途:

24CXX卡读卡 ,从指定位置开始读取指定个数的数据

参数: 

ReaderHandleIN 接口句柄

OffsetIN 起始地址

  Len :IN 数据长度

DataOUT 数据内容(传出参数)

Flag: IN  flag=0为24C01~16  flag=1为24C32~1024

返回值:

等于 0 表示执行成功,否则表示执行失败.

6.4 long WINAPI ICC_Reader_24c_Write (long ReaderHandle,int offset,int len,unsigned char *data,unsigned char flag);

用途:

24CXX卡写卡 ,从指定位置开始写入指定个数的数据

参数: 

ReaderHandleIN 接口句柄

OffsetIN 起始地址

  Len :IN 数据长度

DataIN 数据内容(传入参数)

Flag: IN  flag=0为24C01~16  flag=1为24C32~1024

返回值:

等于 0 表示执行成功,否则表示执行失败.

 

非接基本操作函数(非接前置步骤)

 

7.1 long WINAPI  PICC_Reader_SetTypeA(long  ReaderHandle);

 

函数功能:

设置读写器为读 typeA 卡

参数:

ReaderHandle IN 设备句柄,设备打开函数 ICC_Reader_Open的返回值

返回值:

等于 0 表示执行成功,否则表示执行失败.

 

7.2 long WINAPI  PICC_Reader_SetTypeB(long  ReaderHandle);

 

函数功能:

设置读写器为读 typeB 卡

参数:

ReaderHandle IN 设备句柄,设备打开函数 ICC_Reader_Open的返回值

返回值:

等于 0 表示执行成功,否则表示执行失败.

 

7.3 long WINAPI  PICC_Reader_Select(long  ReaderHandle,unsigned  char cardtype);

函数功能:

选择卡片

参数:

ReaderHandle IN 设备句柄,设备打开函数 ICC_Reader_Open的返回值

CardtypeIN 卡片类型(0x41 表示 typeA M1 卡,0x42 表示 typeB卡) 

返回值:

等于 0 表示执行成功,否则表示执行失败.

 

7.4 long WINAPI  PICC_Reader_Request(long  ReaderHandle);

 

函数功能:

请求卡片

参数:

ReaderHandle IN 设备句柄

返回值:

等于 0 表示执行成功,否则表示执行失败.

 

7.5 long WINAPI  PICC_Reader_anticoll(long ReaderHandle,unsigned char *uid);

 

函数功能:

防碰撞

参数:

ReaderHandleIN 设备句柄

UidOUT 输出参数(卡片 序列号)

返回值:

等于 0 表示执行成功,否则表示执行失败.

例子:

Unsigned char uid[10]={0};

Int re = PICC_Reader_anticoll(hRead,uid);

 

7.6 long WINAPI PICC_Reader_RFControl(long  ReaderHandle, short flag );

函数功能:

非接天线关闭与开启

参数:

ReaderHandle IN 设备句柄

flag IN flag=0 表示关闭天线场强,flag=1表示开启天线

返回值:

等于 0 表示执行成功,否则表示执行失败.

 

7.7 long WINAPI  PICC_Reader_FindCard (long  ReaderHandle);

函数功能:

寻找读写器磁场区域是否有非接卡片

参数:

ReaderHandleIN 设备句柄

返回值:

等于 0 表示执行成功,表示有卡片在磁场区域,非0,表示无卡.

例子:

Int re = PICC_Reader_FindCard(hRead);

 

M1卡基本操作函数

8.1 long WINAPI PICC_Reader_Authentication(long  ReaderHandle,unsigned charMode, unsigned   char SecNr); //不推荐使用

函数功能:

M1卡认证密钥,该函数自动调用存储于设备里面的Key进行认证;

参数:

ReaderHandle  IN 设备句柄

ModeIN 模式 (认证KeyA时为0,认证KeyB时为4)

SecNr IN 扇区号 (0~15)

返回值: 

等于 0 表示执行成功,否则表示执行失败.

例子:

Int re = PICC_Reader_Authentication(hReader,0,0);//认证0扇区的KeyA

 

8.2 long WINAPI PICC_Reader_Authentication _Pass (long ReaderHandle, unsigned charMode, unsigned   char SecNr , unsigned char *PassWord); //推荐使用

函数功能:

M1卡认证密钥,该函数将使用参数PassWord传入的Key进行认证;

参数:

ReaderHandle  IN 设备句柄

ModeIN 模式 (认证KeyA时为0x60,认证KeyB时为0x61)

SecNr IN  扇区号 (0~15)

PassWordIN  6字节密钥

返回值: 

等于 0 表示执行成功,否则表示执行失败

例子:

Unsigned char key[10]={0xff,0xff,0xff,0xff,0xff,0xff};

Int re = PICC_Reader_Authentication_Pass(hReader,0x60,0,key);//认证0扇区的KeyA

 

8.3 long WINAPI PICC_Reader_Read(long  ReaderHandle,unsigned         charAddr, unsigned  char *Data);

 

函数功能:

读取M1卡片块数据

参数:

ReaderHandle IN 设备句柄

AddrIN 块号(S50该值范围0~63;S70该值范围0~255)

DataOUT 输出参数(读取的数据)

 返回值:

等于 0 表示执行成功,否则表示执行失败

例子:

Unsigned char data[20]={0};

Int re = PICC_Reader_Read(hReader ,10,data);//读取第10块数据

 

8.4 long WINAPI PICC_Reader_ReadHEX(long ReaderHandle,unsigned char Addr,unsigned char *DataHex);

 

函数功能:

读取M1卡块数据,返回数据格式是HEX字符串形式

参数:

ReaderHandle IN 设备句柄

AddrIN 块号(S50该值范围0~63;S70该值范围0~255)

DataHex:OUT 输出参数(读取的数据)

 返回值:

等于 0 表示执行成功,否则表示执行失败

例子:

Unsigned char datahex[40]={0};

Int re = PICC_Reader_ReadHex(hReader ,10,datahex);//读取第10块数据

 

8.5 long WINAPI PICC_Reader_Write(long  ReaderHandle,unsigned         charAddr, unsigned  char *Data);

 

函数功能:

M1卡片块数据

参数:

ReaderHandle IN 设备句柄

AddrIN 块号(S50该值范围0~63;S70该值范围0~255)

DataIN 输入参数(需要写入的数据)

 返回值:

等于 0 表示执行成功,否则表示执行失败

例子:

Unsigned char data[20]={0x01,0x02,0x03,0x04,0x05,0x06,0x07, 0x08,0x09,0x0a, 0x0b,0x0c,0x0d,0x0e,0x0f,0x00};//16字节

Int re = PICC_Reader_Write(hReader ,10,data);//写入第10块数据

 

8.6 long WINAPI PICC_Reader_WriteHEX(long  ReaderHandle,unsigned         charAddr, unsigned  char *DataHex);

 

函数功能:

M1卡片块数据,传入数据格式为HEX字符串

参数:

ReaderHandle IN 设备句柄

AddrIN 块号(S50该值范围0~63;S70该值范围0~255)

DataHex:IN 输入参数(需要写入的数据)

 返回值:

等于 0 表示执行成功,否则表示执行失败

例子:

Unsigned char data[40]={“0102030405060708090a0b0c0d0e0f00”};//伪代码

Int re = PICC_Reader_WriteHEX(hReader ,10,data);//写入第10块数据

 

8.7 long WINAPI PICC_Reader_LoadKey(long  ReaderHandle,unsigned  char Mode,unsigned  char SecNr,unsigned  char *Key);//不推荐使用

 

函数功能:

装载密钥至设备里

参数:

ReaderHandleIN 设备句柄

ModeIN 密钥模式 KeyA 或 KeyB  ,0 为 KeyA  ,4 为 KeyB

SecNrIN 扇区号(取值范围0~15)

KeyIN 待下载到设备的密钥 (输入参数)

返回值:

等于 0 表示执行成功,否则表示执行失败

例子:

Unsigned char key[10]={0xff,0xff,0xff,0xff,0xff,0xff};

Int re = PICC_Reader_LoadKey(hReader,0,0,key);//下载扇区0的KeyA密钥至设备里

 

8.8 long WINAPI PICC_Reader_LoadKeyHEX(long  ReaderHandle,unsigned  char Mode,unsigned  char SecNr,unsigned  char *KeyHex); //不推荐使用

 

函数功能:

装载密钥至设备里,密钥以HEX字符串形式传入

参数:

ReaderHandleIN 设备句柄

ModeIN 密钥模式 KeyA 或 KeyB  ,0 为 KeyA  ,4 为 KeyB

SecNrIN 扇区号(取值范围0~15)

KeyHex:IN 待下载到设备的密钥 (输入参数)

返回值:

等于 0 表示执行成功,否则表示执行失败

例子:

Unsigned char keyHex[10]={“ffffffffffff”};//伪代码

Int re = PICC_Reader_LoadKeyHEX(hReader,0,0,keyHex);//下载扇区0的KeyA密钥至设备里

 

非接CPU卡基本操作函数

 

9.1 long WINAPI PICC_Reader_PowerOnTypeA(long  ReaderHandle,unsigned  char* Response);

函数功能:

非接TypeA CPU卡上电复位

参数:

ReaderHandle IN 设备句柄

ResponseOUT 输出上电成功返回的卡片复位信息(ATR)

返回值:

成功大于0,返回参数 Response 的长度,小于等于 0 表示失败

 

9.2 long WINAPI PICC_Reader_PowerOnTypeB(long  ReaderHandle,unsigned  char* Response);

函数功能:

非接TypeB CPU卡上电复位

参数:

ReaderHandle IN 设备句柄

ResponseOUT 输出上电成功返回的卡片复位信息(ATR)

返回值:

成功大于0,返回参数 Response 的长度,小于等于 0 表示失败

 

9.3 long WINAPI  PICC_Reader_Application(long  ReaderHandle,long Lenth_of_Command_APDU, unsigned  char*  Command_APDU, unsigned  char*  Response_APDU);

函数功能:

TypeA/B 非接 CPU 卡执行 apdu 命令 

参数:

ReaderHandle IN 接口句柄.

Lenth_of_Command_APDUIN apdu命令长度

Command_APDUIN APDU命令数据

Response_APDUOUT apdu 命令执行后,响应的数据. 

返回值:

大于 0 表示执行成功,其值为 Response_APDU 的数据长度.否则表示执行失败

例子:大卡座CPU卡执行命令

unsigned  char cmd[8] =  {0x00,  0xa4,  0x00,  0x00,  0x02,  0xEF,  0x11};

int  len  =  PICC_Reader_Application(hReader,  7,  cmd, PowerRes);

 

10 磁条卡基本操作函数

 

10.1 long WINAPI Rcard(long ReaderHandle,unsigned char ctime,int track,unsigned char *rlen,char *getdata);

函数功能:

   读磁条卡

参数:

ReaderHandle IN 设备句柄

Ctime :IN 超时值

Track :IN 磁道,支持1~3轨的读

Rlen :OUT 返回的数据长度

Getdata :OUT 返回的磁条轨道数据

返回值:

等于 0 表示执行成功,否则表示执行失败

例子:

Unsigned char data[100]={0};//伪代码

Unsigned char len=0;

Int re = Rcard(hReader,20,2,&len,data);//读取磁卡2轨数据

 

11 液晶屏基本操作函数

 

11.1 long WINAPI ICC_DispInfo(long ReaderHandle,unsigned char row,unsigned char list,char *data);

函数功能:

液晶屏显示信息

参数:   

ReaderHandle IN 设备句柄

Row:IN 将信息显示在液晶屏的第几行(0~7)

List:IN 将信息从第几列开始显示

Data:IN 要显示的信息

返回值:

等于 0 表示执行成功,否则表示执行失败

 

11.2 long WINAPI   ICC_CtlLight(long ReaderHandle);

函数功能:

液晶屏清屏

参数:   

ReaderHandle IN 设备句柄

返回值:

等于 0 表示执行成功,否则表示执行失败

 

11.3 long WINAPI   ICC_ChangeLight(long ReaderHandle,unsigned char mode);//改变屏幕亮度 mode=1 调亮  mode=0调暗

函数功能:

液晶屏清屏

参数:   

ReaderHandle IN 设备句柄

Mode:IN mode=1 调亮  mode=0调暗

返回值:

等于 0 表示执行成功,否则表示执行失败

 

12 语音基本操作函数

12.1 long WINAPI ICC_DispSound(long ReaderHandle,unsigned char type,unsigned char nMode);  

函数功能:

语音播报

参数:   

ReaderHandle IN 设备句柄

type:IN 语音类型取值范围(1~14)  1、请插卡 2、请刷卡 3、读卡错误 4、请输入密码  5、密码错误  6、操作成功 7、操作超时 8、操作失败 9、请取回卡 10、请重新输入密码 11、请再次输入密码 12、请输入新密码 13、请输入旧密码 14、请确认新密码

nMode:IN nMode=0内置键盘语音(键盘和设备集成一体),nMode=1外置键盘语音(键盘通过线外接)

返回值:

等于 0 表示执行成功,否则表示执行失败

 

 

13 密码键盘基本操作函数

 

13.1 long WINAPI  ICC_GetInputPass(long ReaderHandle, unsigned char ctime, unsigned char *rlen, unsigned char start,unsigned char stop,unsigned char * cpass); 

函数功能:

   通过密码键盘获取密码,该函数需要和语音函数协同使用,具体流程见附6

参数:

ReaderHandle IN 设备句柄

Ctime :IN 超时值

Rlen :OUT 返回的数据长度

Start:IN  start=0用内置键盘,start=1用外置键盘

Stop:IN  固定为Stop =1

cpass:OUT 从键盘获取的密码

返回值:

等于 0 表示执行成功,否则表示执行失败

例子:

Unsigned char pass[100]={0};//伪代码

Unsigned char len=0;

Int re = ICC_GetInputPass (hReader,20 ,&len, 0,1,pass);//内置键盘获取密码

 

 

14 二代证基本操作函数

 

14.1 long WINAPI PICC_Reader_ReadIDMsg(long ReaderHandle, const char* pBmpFile, char *pName, char *pSex, char *pNation, char *pBirth, char *pAddress, char *pCertNo, char *pDepartment , char *pEffectData, char *pExpire,char * pErrMsg);

函数功能:

   读取身份证信息

参数:

ReaderHandle IN 设备句柄

pBmpFile:IN 如果pBmpFile==NULL,则不生成照片,如需生成照片,这里请传入路径。例如:C:/zhaopian/zp.bmp

pNameOUT 姓名

pSexOUT 性别

pNationOUT 民族

pBirthOUT 出生日期

pAddressOUT 家庭住址

pCertNoOUT 身份证号

pDepartmentOUT 发证机关

pEffectDataOUT 发证日期

pExpireOUT 有效日期

返回值:

等于 0 表示执行成功,否则表示执行失败

 

14.2 long WINAPI PICC_Reader_ReadIDInfo(long ReaderHandle, char* pBmpFileData, char *pName, char *pSex, char *pNation, char *pBirth, char *pAddress, char *pCertNo, char *pDepartment , char *pEffectData, char *pExpire,char * pErrMsg);

函数功能:

   读取身份证信息

参数:

ReaderHandle IN 设备句柄

pBmpFileDataIN 如果pBmpFileData==NULL,则不生成照片,如需生成照片,这里输出照片BMP数据十六进制数据流信息,需分配77725字节空间

pNameOUT 姓名

pSexOUT 性别

pNationOUT 民族

pBirthOUT 出生日期

pAddressOUT 家庭住址

pCertNoOUT 身份证号

pDepartmentOUT 发证机关

pEffectDataOUT 发证日期

pExpireOUT 有效日期

返回值:

等于 0 表示执行成功,否则表示执行失败

 

14.3 long WINAPI PICC_Reader_ReadIDPhotoInfo (long ReaderHandle, char* pBmpFileData, char *pName, char *pSex, char *pNation, char *pBirth, char *pAddress, char *pCertNo, char *pDepartment , char *pEffectData,  char *pExpire,char * pErrMsg);

函数功能:

   读取身份证信息

参数:

ReaderHandle IN 设备句柄

pBmpFileDataIN 如果pBmpFileData==NULL,则不生成照片,如需生成照片,这里输出照片BASE64编码数据信息,需分配6025字节空间

pNameOUT 姓名

pSexOUT 性别

pNationOUT 民族

pBirthOUT 出生日期

pAddressOUT 家庭住址

pCertNoOUT 身份证号

pDepartmentOUT 发证机关

pEffectDataOUT 发证日期

pExpireOUT 有效日期

返回值:

等于 0 表示执行成功,否则表示执行失败

14.4  long WINAPI PICC_Reader_ID_ReadUID(long ReaderHandle, char* Response);

函数功能:

读身份证ID

参数:

ReaderHandleIN 设备句柄

ResponseOUT 身份证ID ,8字节共16位字符串数据流

 

返回值:

等于 0 表示执行成功,否则表示执行失败

 

15 辅助功能函数

 

15.1 long WINAPI  StrToHex(unsigned char *strIn,int inLen,unsigned char *strOut);

函数功能:

   将字符命令流转为16进制流

参数:

strIn:IN 输入的待转换数据,格式例如:”11223344”

inLen:IN 输入数据的长度

strOut:OUT 输出的数据,输出数据的长度为输入数据长度的一半。

返回值:

等于 0 表示执行成功,否则表示执行失败

例子:

          strIn = “11223344”;

          inLen = 8 ;

          int re = StrToHex(strIn,inLen,strOut);

          结果:strOut[0]=0x11;

                      strOut[1]=0x22;

                      strOut[2]=0x33;

                      strOut[3]=0x44;

15.2 long WINAPI  HexToStr (unsigned char *strIn,int inLen,unsigned char *strOut);

函数功能:

   16进制命令流转为字符流

参数:

strIn:IN 输入的待转换数据

inLen:IN 输入数据的长度

strOut:OUT 输出的数据,输出数据的长度为输入数据长度的2倍。

返回值:

等于 0 表示执行成功,否则表示执行失败

例子

          strIn = {0x11,0x22,0x33,0x44};

          inLen = 4;

          int re = HexToStr (strIn,inLen,strOut);

          结果:strOut=”11223344”;

 

 

16 附录卡片操作要点

 

常见卡 类型大致区分:

1. 社会保障卡:接触CPU卡

2. 就诊卡:M1卡或者磁条卡

3. 银行卡:接触/非接CPU、磁条

4. 会员卡:M1/磁条卡/其它

5. 交通卡:非接CPU卡

 

16.1 1:typeACPU 卡操作顺序

1 设置为TypeA卡片

2 请求卡片

3 防碰撞

4 选择卡片

5 上电

6   APDU 命令

 

16.2 2:typeB 卡操作顺序

1 设置为TypeB卡片

2 上电

3 选卡

4  APDU 命令

 

16.3 3:M1卡操作顺序

1 设置为TypeA卡片

2 请求卡片

3 防碰撞

4 选择卡片

5 认证密钥

6  读或写

 

16.4 4:4442/4428卡片操作顺序

1 上电复位

2 认证

3  读或写

16.5 5:接触CPU卡操作顺序

1 上电

2  APDU 命令

 

16.6 6:获取密码键盘流程

1  调用语音函数播放需要的类型的语音

2   调用获取密码键盘函数

 

【实例截图】

from clipboard【核心代码】

.
├── SSSE32动态库(2018)
│   ├── BmpToJpg.dll
│   ├── SSSE32.H
│   ├── SSSE32.dll
│   ├── SSSE32.lib
│   ├── UnPack.dll
│   └── 读写器SSSE32函数说明文档2018.doc
└── 好例子网_SSSE32动态库__说明文档(2018).zip

1 directory, 7 files



实例下载地址

SSSE32动态库&&说明文档(2018)

不能下载?内容有错? 点击这里报错 + 投诉 + 提问

好例子网口号:伸出你的我的手 — 分享

网友评论

发表评论

(您的评论需要经过审核才能显示)

查看所有0条评论>>

小贴士

感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。

  • 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
  • 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
  • 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
  • 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。

关于好例子网

本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明

;
报警