char szbuf[100];
szbuf="123456789";
CString szRBuf,sztmp;
for(int i=0;i<7;i++)
{
sztmp.Format(_T("%X"),szbuf[i];);//转化成十六进制
szRBuf+=szTmp;
}
 为什么szRBuf 老是出错,转化的都是第一个数字
应该怎么解决

解决方案 »

  1.   

    理解错了,
    char szbuf[100] = "123456789";
    CString szRBuf,szTmp;    
    for(int i=0;i<7;i++)
    {        
    szTmp.Format(_T("%X"),szbuf[i]);//转化成十六进制
    szRBuf+=szTmp;
    }
    这样写没有什么问题
      

  2.   

    没有发现错误
    watch中显示:{"31323334353637"}
      

  3.   

    编码方式不同
    VS是unicode
    6.0是多字节
    char -->TCHAR
      

  4.   

    char szbuf[]="123456789";
    CString szRBuf,sztmp;    
    for(int i=0;i<7;i++)
    {        
    sztmp.Format(_T("%X"),szbuf[i]);//转化成十六进制
    szRBuf+=sztmp;
    } SetWindowText(szRBuf); //为了直观的看看,没用调试
    在VS2005上测试,通过符合要求