我在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呢?
请达人指点下,谢谢了!