请问如何将TCHAR类型转换为double类型
例如:
char str;
double d;
d=atof(str);
可以编译通过,因为需要用到Unicode编码需要将char转为TCHAR
TCHAR str;
以上就不行了。请问如何处理

解决方案 »

  1.   

    _tstof TCHAR to double
    是用来替换atof的,可以适用于mbcs和unicode两种字符编码
      

  2.   

    谢谢楼上的兄弟帮忙,现在可以运行通过了。
    刚接触VS2005几天,这个Unicode编码可把我折腾坏了
    原来VC6.0运行好好的,现在好多都要修改。
    楼上兄弟有没有这方面的资料给兄弟看看
    多谢了
      

  3.   

    按这个说法则
    _tstoi可以替代atoi
    _tstol可以替代atol
    等,但是还有一个
    _tstof_l是怎么回事呀。
    麻烦解释一下多谢
      

  4.   

    其实所有的运行时库函数,以前我们习惯的string操作函数printf,sprintf都有其对应的unicode版本,和tchar版本
    tchar版本大部分可以这来做,比如strlen,改成_tcslen()也就是说str都变为_tcsprintf可以改为_tprintf,大多数都可以这样处理涉及参数中包含类似于printf("")这样的字符串常量,都变为_tprintf(_T("..."))这样,以上都是为了兼容以前的运行时函数来做的
    至于资料msdn2003里有详细的列表对比各字符编码版本对于一些标准的API函数,比如MessageBoxA和MessageBoxW都被宏替换为MessageBox自动识别环境。参数中尽量使用_T()来包含字符串常量,如果是变量字符串的指针
    LPTSTR用于替换unsigned char *
    LPCTSTR用于替换const unsigned char *
    数组么那就是TCHAR[]计算字节大小的时候要注意,TCHAR[100],的正确数字是100*sizeof(TCHAR)而不是单纯的100
    这样写出来的程序可以应付在两种环境下的编译
      

  5.   

    谢谢谢谢
    万分感激
    以前还不知道用这个CSDN,刚进这里感到真是进了家一样的感觉
      

  6.   

    有呀,还有
    _tstol_l
    _tstoi_l
    _tstoi64
    _tstoi64_l