如题

解决方案 »

  1.   

    int String2Hex(CString str,char a[])   //返回的是a的长度
    {   
    int   hexdata,lowhexdata;   
    int   hexdatalen=0;   
    int   len=str.GetLength();   
    senddata.SetSize(len/2);   
    for(int i=0;i<len;)   
    {   
    char  lstr,hstr=str[i];   
    if(hstr==' ')   
    {   
    i++;   
    continue;   
    }   
    i++;   
    if(i>=len)   
    break;   
    lstr=str[i];   
    hexdata=ConvertHexChar(hstr);   
    lowhexdata=ConvertHexChar(lstr);   
    if((hexdata==16)||(lowhexdata==16))   
    break;   
    else     
    hexdata=hexdata*16+lowhexdata;   
    i++;   
    a[hexdatalen]=(char)hexdata;   
    hexdatalen++;   
    }    
    return hexdatalen;   

      
    char ConvertHexChar(char ch)     
    {   
      if((ch>='0')&&(ch<='9'))   
      return   ch-0x30;   
      else if((ch>='A')&&(ch<='F'))   
      return   ch-'A'+10;   
      else if((ch>='a')&&(ch<='f'))   
      return   ch-'a'+10;   
      else return   (-1);   
    }
      

  2.   

    CString s;
    char* pc = 0;
    strtoul(s, &pc, 16)返回的值转换一下就可以了。