FileTitle = dlg.GetFileName();
FilePathName = dlg.GetPathName();
CEdit* pEdit1 = (CEdit*)GetDlgItem(IDC_EDIT1);
pEdit1->SetWindowText(FilePathName);
CEdit* pEdit2 = (CEdit*)GetDlgItem(IDC_EDIT2);
pEdit2->SetWindowText(FileTitle);
         
CString str1;
    GetDlgItemText(IDC_COMBO1,str1);
    CString str2;
    GetDlgItemText(IDC_COMBO2,str2);
    CString str3; 
    GetDlgItemText(IDC_EDIT1,str3);
    CString str_file; 
    GetDlgItemText(IDC_EDIT2,str_file);    CIPAddressCtrl* m_Address=(CIPAddressCtrl*)GetDlgItem(IDC_IPADDRESS1);
    BYTE nField0;
    BYTE nField1;
    BYTE nField2;
    BYTE nField3; 
m_Address->GetAddress(nField0,nField1,nField2,nField3);
    CString str_ip;
    str_ip.Format(_T("%d.%d.%d.%d"), nField0,nField1,nField2,nField3);
原来str1,str2,str3,str_file,str_ip正常显示字符串,改UNICODE后都只能显示首字母..

解决方案 »

  1.   

    调试的时候str1,str2,str3,str_file,str_ip显示的么??
      

  2.   

    str1 等变成 unicode 字符串之后,调试器需要修改配置,显示 unicode 字符串才可以,不是数据的问题,是调试器显示的问题
      

  3.   

    比如在ANSI下str1为"cgi"转换后变成"c"
      

  4.   

    str_ip原来是{"192.168.1.215"}变成{"1"},但nField0~4显示还是对的
      

  5.   

    你说说你的开发工具不好吗;如果是 VC6,选择 Tools/Options/Debug/Display Unicode Strings
      

  6.   


    你的str1在什么地方显示的?
      

  7.   

    还有一种程序员自己使用达的办法,也有效果,转换成多字节的ascii,然后再显示。更改显示也是比较好的方式。