请问在下面的类型中:CString,CByteArray,CObArray*,CObArray,BYTE,CChar,CChar*,CString*,CStringArray等它们之间是怎样转换的啊?

解决方案 »

  1.   

    还有,如果有:
    CString str="123";
    怎样把它转换成整形数后再转换成16进制数保存到BYTE就业变量中?
      

  2.   

    转换成整形数 好象是itol()
     msdn上面有
    至于转换成16进制数 小弟不才啊
      

  3.   

    char m_szSrc[]="123" , m_szBuf[123];
    int m_nlen = strlen(m_szSrc) ;
    unsigned char m_nTmp ;
    for(int i = 0, j = 0; i < m_nlen; i++)
    {
    m_nTmp = m_szSrc[i]
    char m_nTmp1[2] ;
    sprintf(m_nTmp1, "%2X", m_nTmp) ;
    memcpy(&m_szBuf[j], m_nTmp1, 2) ;
    j+=2 ;
    }
    m_szBuf[j] = '\0' ;
      

  4.   

    to 流星:
    老兄讲解一下啊小弟对VC不熟悉才来求学的啊
      

  5.   

    试试sscanf先转化为FLOAT型,然后使用_itoa函数转化为16进制的。可以看一下MSDN中每个函数的用法。就这些吧。
      

  6.   

    CString to int用atoi(str,n),n是进制
    你可以查msdn,上面很详细
      

  7.   

    /**
     * 解释定时开机指令
    */
    bool CLedControl::DecodeAutoRunTime(CObArray* obArray)
    {
    if (NULL==m_pMainDlg->m_pCom2) return false;
    if (obArray->GetSize()<1) return false;
    CByteArray* byArray=(CByteArray*)obArray->ElementAt(0);
    if (byArray->GetSize()<1) return false;
    int index=0;
    //帧头信息
    outBuffArray[index++]=(BYTE)0x55;
    outBuffArray[index++]=(BYTE)0xAA;
    //信息类型
    CTime time=CTime::GetCurrentTime();
    CString strtime=time.Format("%Y-%m-%d %H:%M:%S");
    int year=time.GetYear();
    int month=time.GetMonth();
    int day=time.GetDay();
    outBuffArray[index++]=(BYTE)0x36;
    //定时开机时间 //帧尾信息
    outBuffArray[index++]=(BYTE)0xCC;
    outBuffArray[index++]=(BYTE)0x33; return m_pMainDlg->m_pCom2->WriteCommBlock(comBuffArray.GetData(), index+1);
    }谁能帮我根据下面的要求完成上面的方法?
    方法中的obArray的内容为"06:30",方法的功能是生成符合下面要求的一个CByteArray数组定时开机信息  信息长度 11字节
    帧头:CHAR(0x55)+CHAR(0xAA)
    信息类型:  CHAR(0x34)
    时间信息:  年,月,日,时,分,秒,各占用1字节,共六字节
    帧尾 :CHAR(0xCC)+CHAR(0x33)大家帮帮忙,帮我实现一下,火烧眉头了
      

  8.   

    STring str = "123";
       int res = atoi(str);
       BYTE m_res[10];
       sprintf((char*)m_res, "%2X", res);