CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VC/MFC >  基础类

关于TCHAR和char转换的的问题,大家来看看

楼主yux007(yux007)2004-08-04 13:38:09 在 VC/MFC / 基础类 提问

char   szBuf[255];  
  if   ((int)strlen(szBuf)   >   iMax)  
  这是一段不支持UNICODE的程序,想让它转成支持unicode的,于是  
  TCHAR   szBuf[255];  
  此时不能用strlen了,该用什么呢?  
  _tcslen返回的是一size_t值不能和iMax比较大小,特求助大家,谢谢! 问题点数:20、回复次数:16Top

1 楼huaboy408(Thinking...)回复于 2004-08-04 13:42:22 得分 0

lstrlen如何?Top

2 楼aspnetwuxueyou(SHIP IT)回复于 2004-08-04 13:43:27 得分 10

strlen返回值也是size_t你怎么就比较了呢?Top

3 楼kvls(冰茶)回复于 2004-08-04 13:45:22 得分 10

strlen返回的也是size_t,上面不是使用了强制转换吗?  
  使用_tcslen强制转换不行?Top

4 楼yux007(yux007)回复于 2004-08-04 13:48:44 得分 0

使用_tcslen强制转换在这里有警告  
  warning   C4267:   '='   :   conversion   from   'size_t'   to   'int',   possible   loss   of   data  
   
  Top

5 楼aspnetwuxueyou(SHIP IT)回复于 2004-08-04 13:54:54 得分 0

#pragma   warning(   disable   :   4267)Top

6 楼promaster(财源广进)回复于 2004-08-04 13:56:10 得分 0

也可以用(int)tcslen(szBuf)来得到.Top

7 楼promaster(财源广进)回复于 2004-08-04 13:57:51 得分 0

TCHAR   szBuf[255];  
  _tcscpy(szBuf,   "This   is   a   test.");  
  int   n   =   (int)_tcslen(szBuf);Top

8 楼zhaohuiguang(晓晓)回复于 2004-08-04 13:57:53 得分 0

可以Top

9 楼yux007(yux007)回复于 2004-08-04 13:59:33 得分 0

#pragma   warning(   disable   :   4267)?  
  忽略这个警告?Top

10 楼lazygod(Use any item)回复于 2004-08-04 14:04:25 得分 0

把iMax定义为UINT即可。或者(UINT)iMax,如果你的iMax不可能小与零的话Top

11 楼yux007(yux007)回复于 2004-08-04 14:05:01 得分 0

TCHAR   szBuf[255];  
  _tcscpy(szBuf,   "This   is   a   test.");  
  int   n   =   (int)_tcslen(szBuf);  
  这不还是强制转换吗?Top

12 楼yux007(yux007)回复于 2004-08-04 14:07:25 得分 0

把iMax定义为UINT即可。或者(UINT)iMax,如果你的iMax不可能小与零的话  
  仍然警告:  
  warning   C4267:   '='   :   conversion   from   'size_t'   to   'UINT',   possible   loss   of   data  
  Top

13 楼anyiflyer(代码在我心中!)回复于 2004-08-04 14:39:09 得分 0

tchar.h中  
  typedef   char                         TCHAR;Top

14 楼yux007(yux007)回复于 2004-08-04 14:47:37 得分 0

typedef   char                         TCHAR;  
  这不是掩耳盗铃嘛Top

15 楼lazygod(Use any item)回复于 2004-08-08 23:17:22 得分 0

typedef   char                         TCHAR;  
  我记得还有一句:  
  typedef   short   int                         TCHAR;  
  仔细看看。  
   
  可能是typedef   unsigned   long   size_t  
  你找找size_t的原始定义,或者换成ULONG试一下Top

16 楼yubo198(bobo)回复于 2004-09-20 19:34:00 得分 0

wcslen(TCHAR   *)的应该可以了Top

相关问题

  • BSTR 和 char* 字符串、wchar_t,TCHAR等的转换问题?
  • CHAR和CSTRING的转换
  • 请问怎么将TCHAR ,转换成CHAR?(急用)
  • 急:byte*转换成char*或者是TCHAR*类型
  • char转换long
  • char 和 TCHAR 区别
  • 怎样在BSTR和TCHAR之间转换?
  • string类型和char*如何转换?
  • 请问INT和CHAR如何转换
  • #号和类型转换char相同吗?

关键词

  • 转换
  • szbuf
  • imax
  • tchar
  • tcslen
  • 强制转换
  • 警告
  • 定义
  • strlen
  • uint

得分解答快速导航

  • 帖主:yux007
  • aspnetwuxueyou
  • kvls

相关链接

  • Visual C++类图书
  • Visual C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo