回 帖 发 新 帖 刷新版面

主题:setwindowtext显示异常,求教达人

写了个计算器的小程序,先把算好或者输入的数setwindowtext到编辑框中,但是出问题了 ,描述如下:
1.setwindowtext(hwnd,L"XX");可以正确set
2.我将编辑框中的内容设了个char*变量text,当setwindowtext(hwnd,(LPCWSTR)text),显示就是一个方框,没有预期的字符
3.将text作过些数据类型转换的实验,发现TCHAR*可用(但TCHAR不支持atof,strcat等函数,所以不可用)。于是考虑,是不是预编译MBCS和UNICODE的问题...
4.代码中没有#define _UNICODE 和#define UNICODE
5.由于是嵌入式程序,使用platform builder集成开发环境(不知道预编译选项在哪,不知道那里会不会有_UNICODE)
6.也考虑过使用TCHAR,但TCHAR仍需与char互相转换(不会)

求教达人,以上是我对这个问题的全部思考,如果还有其他路可走,请赐教,如果思考还不够深入,也请赐教

再拜达人!!(50分)

回复列表 (共7个回复)

沙发

2。强制转化你得保证行为正确呀,你把char*强制转化为wchar_t*它就是wchar_t*了吗?如果这样还不如强制转化为人民币呐
3。TCHAR只是一个宏,你说它可用谁知道你说的是char可用,还是wchar_t可用?atof,strcat是用于char*的,你用那些宽字符的话,看看MSDN吧,比如 _ttoi,_tcscat
4。代码中没用,但不等于编译设置中没用呀

板凳

又作了点试验,果然是采用UNICODE预编译,全部改为wchar_t及相关函数,显示正确了(但是仍不知道platform builder的预编译设置在哪..)另外,请问达人,在嵌入式环境下,有没有与atof一样功能的、适用于wchar_t的函数?(已经查过,没有_wtof)

求教达人,再拜~~

3 楼

_ttof

4 楼

好像也没有_ttof这个函数...

求教达人,再拜~~

5 楼

按字符转化为char再用atof

6 楼

哈哈,找到了,是wcstod~~~~谢谢各位达人~~
但是还是不知道预编译设置在哪...
是platform builder 5.0

求教达人,再拜!!

7 楼

曙海嵌入式学院提供以下课程的培训--中国最大的FPGA,DSP和3G手机通信培训机构:
FPGA培训,DSP培训,MTK培训,Android培训,Symbian培训,iPhone培训,单片机培训,Candence PCB培训,Vxworks培训等。
网址:http://www.shuhai9.cn
上海总部电话:021-51875830 深圳:0755-61280252 北京:010-51292078

我来回复

您尚未登录,请登录后再回复。点此登录或注册