首页 新闻 论坛 群组 Blog 文档 下载 读书 Tag 网摘 搜索 .NET Java 游戏 视频 人才 外包 培训 数据库 书店 程序员
中国软件网
欢迎您:游客 | 登录 注册 帮助
  • 问一个关于TCHAR 和 CHAR/WCHAR的问题 [已结贴,结贴人:apache2002]
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-07-19 11:20:17 楼主
    我在写一程序,要求适用于unicode和非unicode两种编译环境,
    因为我比较懒,不想用宏来分隔代码。所以现在有两个问题想请教大家:

    1、如何将LPBYTE转换为LPTSTR ?
    注意是LPTSTR而不是特指的LPWSTR或LPCSTR,
    也就是说unicode下转为WCHAR*,非unicode下不变,有没有可以自动识别处理的函数?
    因为程序要在两种环境下都被正确编译运行。

    2、定义一个TCHAR类型变量,可以用_T宏吗? 例如: TCHAR a = _T('a'),
    如果不行,如何将char转换为TCHAR呢?(和第一个问题一样,要求能适用于两种环境)
    20  修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-07-19 11:23:161楼 得分:2
    如果你不想用宏的话,只能自己写。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-07-19 11:24:322楼 得分:4
    if(sizeof(LPTSTR) == 1)
    {
    //ansi环境
    }

    if(sizeof(LPTSTR) == 2)
    {
    //unicode环境
    }

    直接TCHAR a = 'a';就行了,字符串和字符是不同的
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • zaodt
    • 等级:
    发表于:2008-07-19 12:14:063楼 得分:8

    MFC 中直接用 CString 类即可。


    LPBYTE p = ........


    CString str = p;


    它内部会帮你做好的,不管是不是 UNICODE
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-07-19 12:15:444楼 得分:6
    CString可以,内部会转换。
    修改 删除 举报 引用 回复

    网站简介广告服务网站地图帮助联系方式诚聘英才English 问题报告
    北京创新乐知广告有限公司 版权所有 京 ICP 证 070598 号
    世纪乐知(北京)网络技术有限公司 提供技术支持
    Copyright © 2000-2008, CSDN.NET, All Rights Reserved