我有两个 两个动态库 VC6.0++开发,编译成Release实体  OUR_IDR.dll 和 IDUSB.dllOUR_IDR.dll :
函数名:idr_read
功能: 寻卡并返回该卡的序列号
原始声明 unsigned char __stdcall idr_read (unsigned char *serial)
输入: 形参*serial只需指向一个至少已分配了5个char空间的可写数组 unsigned char *指针, serial的下标由0开始。Serial数组的内容无需赋值,因为此数组仅用于返回值。
返回: 返回unsigned char值,并将寻到的卡的序列号传值到*serial数组。public class LoadLibraryDll
    {
        /// <summary>
        /// 载入DLL,读卡,返回卡信息
        /// </summary>
        /// <param name="i"></param>
        /// <returns></returns>
        //以C元素指针,从托管到非托管进行封装处理
        [DllImport("OUR_IDR.dll", EntryPoint = "idr_read")]
        public static extern byte idr_read([MarshalAs(UnmanagedType.LPArray)] byte[] serial);        [DllImport("OUR_IDR.dll")]
        public static extern byte pcdgetdevicenumber([MarshalAs(UnmanagedType.LPArray)] byte[] devicenumbe);
    }public class ReturnCardRead
    {
        //创建数据缓存区间
        byte[] cardNo = new byte[10];
        //返回状态消息
        string statusMsg = null;
        /// <summary>
        /// 读取卡号
        /// </summary>
        /// <returns></returns>
        public String IdrRead()
        {
            try
            {
                //调用非托管DLL方法,并返回处理结果
                byte readCardInfo = LoadLibraryDll.idr_read(cardNo);
                //数据分割
                string strValue = null;
                //读取缓存控件大小
                for (int i = 0; i < cardNo.Length; i++)
                {
                    //每个空间的数据转换字符串
                    strValue += cardNo[i].ToString();                    if (strValue.Length == 1)
                        strValue = "0" + strValue;
                    strValue += strValue;
                }
                //截取
                strValue = strValue.Substring(2, 8);
                //转化成非0开头的数字
                int intTemp = Convert.ToInt32(strValue, 16);
                strValue = intTemp.ToString();        //#define ERR_REQUEST 8//寻不到卡
        //#define ERR_NONEDLL 21//没有动态库
        //#define ERR_DRIVERORDLL 22//动态库或驱动程序异常
        //#define ERR_DRIVERNULL 23//驱动程序错误或尚未安装
        //#define ERR_TIMEOUT 24//操作超时,一般是动态库没有反映
        //#define ERR_TXSIZE 25//发送字数不够
        //#define ERR_TXCRC 26//发送的CRC错
        //#define ERR_RXSIZE 27//接收的字数不够
        //#define ERR_RXCRC 28//接收的CRC错
但是每次调用都出问题
返回信息: 23 但是驱动确实是放在  project/Bin/Debug 下了 Bin 下也放了
在VC++ 下测试是通过的..
还有就是每次我怎么能一刷卡就调用到这个方法
要写个监视么?
PS: 不要太关注于头像...那只是一张图片而已...