4027|6

87

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

WINCE 下将CString转换成char*出现的问题 [复制链接]

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

最新回复

LZ的意思是str_keyvalue改成char str_keyvalue[MAX_PATH]?  详情 回复 发表于 2007-10-9 12:29
点赞 关注

回复
举报

79

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
"pEdit1-   >GetWindowText(str1);   
          pEdit2-   >GetWindowTextW(str2);   
          szValue1=(LPSTR)(LPCTSTR)str1;   
          szValue2=(LPSTR)(LPCTSTR)str2;   
"

建议你不要这样获取值.
直接在ClassWizard上定义控件变量吧,那样还可以指定类型,要不然你这样指定转换,值可能已经乱了.
 
 

回复

80

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
貌似我也碰到这个问题,取出来只是第一个字母,期待达人解决
 
 
 

回复

70

帖子

0

TA的资源

一粒金砂(初级)

4
 
TCHAR类型的也能直接转为浮点型的啊,何必呢
wcstod
 
 
 

回复

73

帖子

0

TA的资源

一粒金砂(初级)

5
 
qfeng168 是在什么情况下仅读出一个字母的?
贴点代码看下.

我前段时间做进程间通信,传一个字符串过来的,读过来就是首字母,后来改成Char数组就可以了
 
 
 

回复

75

帖子

0

TA的资源

一粒金砂(初级)

6
 
我是读取注册表值,读出来转成cstring,但只能取到第一个字母
RegQueryValueEx(hkey, _T("DefaultPrinter"), NULL, &dwtype, keyvalue, &cbData);
CString str_keyvalue = CString(keyvalue)
str_keyvalue只有字符串的第一个字母
 
 
 

回复

66

帖子

0

TA的资源

一粒金砂(初级)

7
 
LZ的意思是str_keyvalue改成char str_keyvalue[MAX_PATH]?
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/7 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表