见过这个库名的人应该知道是什么吧,我就不多说了。
我现在想要两方面解决方案: 1、如果你是das公司或是你开发过这个包,能不能告诉我,在3.0的写卡过程中,这个DLL是不是有经过什么特殊处理?因为我按照文档来写函数,是连不通机器的。
2.如果你成功开发过这个写卡过程,为了尊重你的劳动成果,我愿意出现金买你的心得。或是指点一二也行!或Email:Hwkknd·163.net属于1类的,我愿意出2000分相赠…
2类的具体再议…

解决方案 »

  1.   

    CrcDasCard30.dll只是一个发卡动态库,使用过程中必须要与DESDLL.dll 及RfReader.dll及licence.das一起使用,如果要与机器通讯则必须用到CrcDasComm30.dll动态库,通讯的过程是打开串口用OpenComm(CommPort)函数,成功后调用ShakeHand()[考勤机]
    XFShakeHand()[就餐机]需要传入的值为:串口句柄,从机地址,系统卡编号(10位),通讯密码(8位)
    成功后再调用其它需要的函数
    完成调用后closecomm(icdev)释放串口
      

  2.   

    若有其它需要帮助的地方,可以与我联系[email protected]
      

  3.   

    E-MAIL已收到,发卡时,只需要有licence.das与几个动态库就可以了,不知你声明发卡器的串口是如何做的,我给你一个VB的例子,只是其中调用的部分,具体的函数声明没有发,待整理之后,看是否可以给你E-mail ,不知你用的发卡器是什么型号的?
    Private Sub Command1_Click()
        Dim Comhandle As Long
        Dim LngCardsn As Long
        Dim Info As Integer
        Dim Intbasic As Integer
        Dim Carddispno As String      '卡显示编号
        Dim Struct_BasicInfo As struc_Employee
        Dim structconsumeinfo As Struct_Consume_Info
        Dim CardSN As Long           '卡固有号
        Dim Cardid As Long           '卡流水号
        Dim Validate As String * 7       '卡失效日
        Dim Gender As Byte              
        Dim IcCarfNo As String * 13
        
        On Error GoTo err:
         'devid为串口号,0代表串口1,1代表串口2,以此类推      
        Comhandle = rf_init(Devid, 19200)   '此处为打开串口,所有对卡片的操作都要先‘调用此函数,以便得到串口句柄,也就是我上面定义的Comhandle
        If Comhandle <= 0 Then
           MsgBox 打开串口错误", vbInformation, "提示"
           Exit Sub
        End If
        info= GetBasicInfo(Comhandle, Struct_BasicInfo, CardSN)'读取卡基本信息
        If info<> 0 Then
           info= rf_card(Comhandle, 0, Cardsn)  '单独寻卡,返回卡固有号
           If info<> 0 Then
                MsgBox "寻卡失败!", vbCritical
                Comhandle = rf_exit(Comhandle) '释放串口句柄
                Exit Sub
           Else
                '处理返回的固有号
                Info = rf_beep(Comhandle, 10)  '发卡器响100毫秒
       
                Comhandle = rf_exit(Comhandle)
                Exit Sub
           End If
           MsgBox GetErrorDescriptionCard(info), vbCritical, "&acute;调用错误处理函数
           Comhandle = rf_exit(Comhandle)
           Exit Sub
        Else '已正确读取到卡的信息,可以对其做相应处理
           Gender = Struct_BasicInfo.Gender
           Carddispno = Struct_BasicInfo.IcCarfNo
           Validate = Struct_BasicInfo.Validate
           info= rf_beep(Comhandle, 10)
        End if
         Comhandle = rf_exit(Comhandle)    Exit Sub
    err:
        MsgBox err.Description
    End Sub
      

  4.   

    明白了,我用的句柄是由Open_Comm()返回的,这个只能用于操作消费机及考勤机,而发卡机的句柄是由rf_init()返回的,是这样吗?
      

  5.   

    hwkknd(白开水),你说的没错,发卡函数的串口必须由rf_init()来初始化,rf_exit()来关闭,由于早先达实对卡片的操作是采用明华的动态库即MWRF32.dll,后来很多的卡片操作函数也都是由此而来
      

  6.   

    aohan(陈景升) 还有有几个问题想向您请教一下用户卡分为两类:
    1,MakeCard :发用户卡,用户扇区各数据都为0
    2.MakeCard_N :发用户卡,并初始化用户卡的卡类 第二个函数比第一个函数多了一个参数(LPCSTR UserCardType 卡类,32个字符。每个字符为‘0’或‘1’),此分类是什么类?用在何处?操作员卡为何用?装入授权文件Load_Author,功能何在
    我用MakeSysSubCard发系统卡如下:
    MakeSysSubCard(CardHWND,UserPass,4,1,CardNo) //(4为客户消费扇区)发卡成功 然后用CheckCardSecInfo()检查扇区使用情况返回结果如下:
    2000000000000000
    而C3考勤子卡检测信息为:
    0999999999999999
    ('0'-不是空白卡  '1'- 系统卡 '2'- 系统子卡 '3'-初始化卡  '9'-空白卡) 我的调用参数有什么问题吗?请指点
      

  7.   

    我发了很多东西但发不了,不知CSDN出了什么问题,回头给你E-mail
      

  8.   

    你的EMAIL我已经收到了,这些问题基本已经解决了,有些问题我还是搞不清楚,还要烦劳你帮忙
    1、C3中为什么3.0、2.0的动态库混用呢?难道是单一版本解决不了问题?拿一个简单的函数来说吧CheckCardSecInfo(),C3中用的是2.0的吧,它和3.0返回的结果不一致,这也就是我昨天遇到的最后一个问题。还有一个技术上的问题向你请教,我在消费充值或是查询扇区信息的时候
    充值成功,但消费机查不到金额(不知道充那里去了)
    查询消费扇区,函数返回-1(使用扇区错误)
    我猜想是扇区这个参数格式的问题
    我的函数声明是Byte类型,但我写4 或是$04(delphi中dx04)格式结果都一样……
    GetConsumeInfo(CardHWND,ConsumeInfo,dx04,addr(CardNo))不知何故……请指点……
      

  9.   

    不好意思,我把50当作元了,所以充值变化幅度太小,没看出来,现在可以充值,但
      GetConsumeInfo(CardHWND,ConsumeInfo,4,addr(CardNo))

      GetConsumeInfo(CardHWND,ConsumeInfo,$04,addr(CardNo))
    还是取不到数据
      

  10.   

    GetConsumeInfo(CardHWND,ConsumeInfo,4,addr(CardNo))
    CardHWND           应为传入的串口句柄
    ConsumeInfo        自定义的消费结构,正确定义很重要   
    4                  消费系统使用的扇区
    addr(CardNo)       应为卡片固有序列号
    只要传入的东西没问题,Licence.das 也没问题,肯定能读出卡上的数据
    ConsumeInfo  消费结构包含的内容比较多,有卡上金额(分表示),卡使用次数,卡金额失效日,卡片级限次规定等等,具体请参照开发文档