WINCE 下将CString转换成char*出现的问题

zhaogang   2007-10-9 10:39 楼主
我在wince下将CString字符串转换成char*,试了网上的好多方法都不成功,下面是我编译通过的,但是结果不对啊!

      CEdit *pEdit1 = (CEdit*)GetDlgItem(IDC_EDIT1);
     CEdit *pEdit2 = (CEdit*)GetDlgItem(IDC_EDIT2);
     CEdit *pEdit3 = (CEdit*)GetDlgItem(IDC_EDIT3);
     CString str1;
     CString str2;
     CString str3;
     char * szValue1;
     char * szValue2;
     pEdit1->GetWindowText(str1);
     pEdit2->GetWindowTextW(str2);
     szValue1=(LPSTR)(LPCTSTR)str1;
     szValue2=(LPSTR)(LPCTSTR)str2;
               
     float fstr1 =atof(szValue1);
     float fstr2 =atof(szValue2);
       
     float sum=fstr1*fstr2;
     CString str;
     str.Format(L"%f",sum);
     pEdit3->SetWindowText(str);
程序实现的功能很简单,就是把两个编辑框的内容读过来,转化成浮点型的相乘后再转换成CString后,通过编辑框显示。但是通过程序结果看只能运行1位数的乘法,比如14×12结果就变成了1×1后面的4,2都丢了,通过debug看好像是在szValue1=(LPSTR)(LPCTSTR)str1这个地方转换的是出了错。可能转换后就变成一个字符了,这个转换不是char*吗,怎么就变成char呢?
请达人指点下,谢谢了!

回复评论

暂无评论,赶紧抢沙发吧
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复