13.3 IC 卡应用 IC(Integrated Circuit)卡,也被称作智能卡(Smart Card),具有写入数据和存储数据的功能,IC 卡内存储器的内容可以根据需要有条件地供外部读取,完成信息处理和判定。由于其内部具有集成电路,不但可以存储大量信息,具有极强的保密性能,并且还具有抗干扰、无磨损、寿命长等特性。因此在各个领域中得到广泛应用。下面通过两个实例介绍 IC 卡的简单应用。 实例 422 向 IC 卡中写入数据 实例说明 IC 卡是携带应用信息和数据的媒体,空白 IC 卡是不能立即使用的,必须对 IC 卡应用系统进行初始化,写入系统 IC 卡和个人密码,个人专用信息和应用数据。下面介绍如何向 IC 卡中写入数据。运行本例,在“数据”文本框中输入要存入IC 卡中的数据,单击“写数据”按钮,即可将输入的数据写入IC 卡中。如图 13.6 所示。 技术要点 本例使用的是深圳明华生产的明华 IC 卡读写器,用户在使用时将驱动程序安装完毕后,即可正常使用本系统。 本例通过调用Mw ic_32.dll 链接库,进行 IC 卡的读写工作。下面介绍与 IC 卡写操作相关的几个函数。 (1)auto_init 函数 该函数用于初始化IC 卡读卡器。语法如下: public static extern int auto_init(int port, int baud); 参数说明如下。 l port:标识端口号,Com1 对应的端口号为 0;Com2 对应的端口号为 1,依此类推。 l baud:标识波特率。 l 返回值:如果初始化成功,返回值是 IC 卡设备句柄;如果初始化失败,返回值小于零。 (2)setsc_md 函数 该函数用于设置设备密码模式。语法如下: public static extern int setsc_md(int icdev, int mode); 参数说明如下。 l icdev:标识设备句柄,通常是 auto_init 函数的返回值。 l mode:标识设备密码模式,如果为 0,设备密码有效,设备在加电时必须验证设备密码才能对设备进行操作。如果为 1,设备密码无效。 l 返回值:如果函数执行成功返回值为零,否则小于零。 (3)get_status 函数 该函数用于获取设备的当前状态。语法如下: public static extern Int16 get_status(int icdev, Int16* state); 参数说明如下。 l icdev:标识设备句柄,通常是 auto_init 函数的返回值。 l state:用于接收函数返回的结果。如果为 0 表示读卡器中无卡,为 1 表示读卡器中有卡。 l 返回值:如果函数执行成功返回值为零,否则小于零。 (4)...