这是dll文件的函数定义 
   WORD WJ1608Card_WriteNum(BYTE* _bWriteNum)   
调用的WJ1608Card_WriteNum函数的过程与结果:
        BYTE a1[100];
        l=0;
        m_list.ResetContent();
        memcpy(a1, "12345678900F",12);
st=WJ1608Card_WriteNum(a1);
if (st==0)
{
           m_list.InsertString(l,"写入卡号信息 OK!"); 
           l++;
}
else
{
   m_list.InsertString(l,"写入卡号信息 error!");
   l++;
}结果:调用成功,但写入的卡号信息是313233343536
疑问:我想写入的是12345678900F,应该怎么改????

解决方案 »

  1.   

    WJ1608Card_WriteNum里面的转换处理有问题~
      

  2.   

    BYTE   a1[100] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 0, 0xF}; 
                    l=0; 
                    m_list.ResetContent(); 
    st=WJ1608Card_WriteNum(a1); 
    if   (st==0) 

                          m_list.InsertString(l,"写入卡号信息   OK!");   
                          l++; 

    else 

          m_list.InsertString(l,"写入卡号信息   error!"); 
          l++; 

      

  3.   

    这样也可以
    WORD WJ1608Card_WriteNum(DOWRD *p,UINT unSize)
    {
     *(p+0) = 0x0000FFFF;
     *(p+unSize-1) = 0x00001000;
      ...
     return 0;
    }
      

  4.   

    二楼办法我试过了,不行,三楼可能理解错了,我调用那个函数,
    只是byte的值我用memcpy(a1,   "12345678900F",12); 
    却写进去的是313233343536,我期望能把12345678900F写进去
      

  5.   


                    char  a1[]= "12345678900F";
                      l=0; 
                    m_list.ResetContent(); 
                    st=WJ1608Card_WriteNum((BYTE*)a1); 
      

  6.   

    我的理解是在于怎么把字符串转化为byte
      

  7.   

    不要用memcpy,没有复制结束符,要么把长度写成13,要么用strcpy
      

  8.   

      BYTE  a9[100] =   {0x12, 0x34,0x56,0x78,0x90, 0xFF};   
        st=WJ1608Card_WriteNum(a9);