VerySource

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 602|回复: 7

如何将TCHAR类型转换为double类型(Unicode编码)

[复制链接]

1

主题

5

帖子

6.00

积分

新手上路

Rank: 1

积分
6.00
发表于 2020-3-11 18:30:01 | 显示全部楼层 |阅读模式
请问如何将TCHAR类型转换为double类型
例如:
char str;
double d;
d=atof(str);
可以编译通过,因为需要用到Unicode编码需要将char转为TCHAR
TCHAR str;
以上就不行了。请问如何处理
回复

使用道具 举报

0

主题

22

帖子

18.00

积分

新手上路

Rank: 1

积分
18.00
发表于 2020-6-4 19:45:01 | 显示全部楼层
_tstof
回复

使用道具 举报

0

主题

22

帖子

18.00

积分

新手上路

Rank: 1

积分
18.00
发表于 2020-6-4 22:45:01 | 显示全部楼层
_tstof TCHAR to double
是用来替换atof的,可以适用于mbcs和unicode两种字符编码
回复

使用道具 举报

1

主题

5

帖子

6.00

积分

新手上路

Rank: 1

积分
6.00
 楼主| 发表于 2020-6-5 22:30:01 | 显示全部楼层
谢谢楼上的兄弟帮忙,现在可以运行通过了。
回复

使用道具 举报

1

主题

5

帖子

6.00

积分

新手上路

Rank: 1

积分
6.00
 楼主| 发表于 2020-6-6 10:00:02 | 显示全部楼层
按这个说法则
_tstoi可以替代atoi
_tstol可以替代atol
等,但是还有一个
_tstof_l是怎么回事呀。
麻烦解释一下多谢
回复

使用道具 举报

0

主题

22

帖子

18.00

积分

新手上路

Rank: 1

积分
18.00
发表于 2020-6-6 19:15:01 | 显示全部楼层
其实所有的运行时库函数,以前我们习惯的string操作函数printf,sprintf都有其对应的unicode版本,和tchar版本
tchar版本大部分可以这来做,比如strlen,改成_tcslen()也就是说str都变为_tcs

printf可以改为_tprintf,大多数都可以这样处理

涉及参数中包含类似于printf("")这样的字符串常量,都变为_tprintf(_T("..."))这样,

以上都是为了兼容以前的运行时函数来做的

对于一些标准的API函数,比如MessageBoxA和MessageBoxW都被宏替换为MessageBox自动识别环境。参数中尽量使用_T()来包含字符串常量,如果是变量字符串的指针
LPTSTR用于替换unsigned char *
LPCTSTR用于替换const unsigned char *
数组么那就是TCHAR[]

计算字节大小的时候要注意,TCHAR[100],的正确数字是100*sizeof(TCHAR)而不是单纯的100
这样写出来的程序可以应付在两种环境下的编译
回复

使用道具 举报

0

主题

22

帖子

18.00

积分

新手上路

Rank: 1

积分
18.00
发表于 2020-6-7 14:45:01 | 显示全部楼层
_tstof_l?有这个么?
回复

使用道具 举报

1

主题

5

帖子

6.00

积分

新手上路

Rank: 1

积分
6.00
 楼主| 发表于 2020-6-7 22:30:01 | 显示全部楼层
有呀,还有
_tstol_l
_tstoi_l
_tstoi64
_tstoi64_l
回复

使用道具 举报

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

本版积分规则

Archiver|手机版|CopyRight © 2008-2023|verysource.com ( 京ICP备17048824号-1 )

快速回复 返回顶部 返回列表