int CCommWizardDlg::String2Hex(CString str, CByteArray &senddata)
这句话怎样实现?具体的步骤是什么?

解决方案 »

  1.   

    提供个类似的:#define  HEX_NUMBERS "0123456789ABCDEF"
    static void char_to_hex(unsigned char c, char* buffer)
    {
    buffer[0] = HEX_NUMBERS[c / 16];
    buffer[1] = HEX_NUMBERS[c % 16];
    }
    /* Convert binary data in <buf> of size <len> to a hex-encoded string */
    char *mem_to_hexstr(const unsigned char *buf, int len)
    {
    int i;
    char *tmp;
    /* 2 hex chars per byte, +1 for terminating 0 */
    char *ret = (char*)malloc(len * 2 + 1);
    if (!ret)
    return NULL;
    tmp = ret;
    for (i = 0; i < len; i++) {
    char_to_hex(*buf++, tmp);
    tmp += 2;
    }
    *tmp = 0;
    return ret;
    }
      

  2.   


    晕,没明白楼主问的意思。这个函数肯定和这个类没多大关系,只是放在这里边而已。字面意思是字符串转换为HEX编码,
    只是把这个实现放在这个类中而已。
      

  3.   

    int CCommWizardDlg::String2Hex(CString str, CByteArray &senddata)
    {
    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++;
    senddata[hexdatalen]=(char)hexdata;
    hexdatalen++;
    } senddata.SetSize(hexdatalen);
    return hexdatalen;
    }
    char CCommWizardDlg::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);
    }
    这是两个函数的全部!我是在网上找的,想放在自己的程序里用!
    直接复制粘贴不行啊!
      

  4.   

    在ClassWizard中为SCommTestDlg类添加以下两个PUBLIC成员函数
      

  5.   

    int CCommWizardDlg::String2Hex(CString str, CByteArray &senddata)
    char CCommWizardDlg::ConvertHexChar(char ch)
    把这里的CCommWizardDlg换成你自己的类名,再在你的类中添加以下二行:
    int String2Hex(CString str, CByteArray &senddata);
    char ConvertHexChar(char ch);
      

  6.   

    可能是VC的bug吧,有时候在classview中没有显示类!所以我就在ClassWizard那里搞!结果.....