char与TCHAR之间的转化主要用到函数MultiByteToWideChar和WideCharToMultiByte
char转TCHAR

如果不是Unicode字符集,就不需要转换,直接复制即可,如果不确定是否使用Unicode字符集,可以这样写

[cpp] view plain copy print?
  1. char strUsr[10] = "Hello";
  2. TCHAR Name[100];
  3. #ifdef UNICODE
  4. MultiByteToWideChar(CP_ACP, 0, strUsr, -1, Name, 100);
  5. #else
  6. strcpy(Name, strUsr);
  7. #endif
char strUsr[10] = "Hello";
TCHAR Name[100];
#ifdef UNICODEMultiByteToWideChar(CP_ACP, 0, strUsr, -1, Name, 100);
#elsestrcpy(Name, strUsr);
#endif

TCHAR转char

[cpp] view plain copy print?
  1. char* ConvertLPWSTRToLPSTR (LPWSTR lpwszStrIn)
  2. {
  3. LPSTR pszOut = NULL;
  4. if (lpwszStrIn != NULL)
  5. {
  6. int nInputStrLen = wcslen (lpwszStrIn);
  7. // Double NULL Termination
  8. int nOutputStrLen = WideCharToMultiByte (CP_ACP, 0, lpwszStrIn, nInputStrLen, NULL, 0, 0, 0) + 2;
  9. pszOut = new char [nOutputStrLen];
  10. if (pszOut)
  11. {
  12. memset (pszOut, 0x00, nOutputStrLen);
  13. WideCharToMultiByte(CP_ACP, 0, lpwszStrIn, nInputStrLen, pszOut, nOutputStrLen, 0, 0);
  14. }
  15. }
  16. return pszOut;
  17. }
char* ConvertLPWSTRToLPSTR (LPWSTR lpwszStrIn)
{LPSTR pszOut = NULL;if (lpwszStrIn != NULL){int nInputStrLen = wcslen (lpwszStrIn);// Double NULL Terminationint nOutputStrLen = WideCharToMultiByte (CP_ACP, 0, lpwszStrIn, nInputStrLen, NULL, 0, 0, 0) + 2;pszOut = new char [nOutputStrLen];if (pszOut){memset (pszOut, 0x00, nOutputStrLen);WideCharToMultiByte(CP_ACP, 0, lpwszStrIn, nInputStrLen, pszOut, nOutputStrLen, 0, 0);}}return pszOut;
}

char与TCHAR相互转化相关推荐

  1. VC char和TCHAR之间转换

    char:计算机编程语言(c.c++.Java.VFP等)中可容纳单个字符的一种基本数据类型. TCHAR:为了满足Unicode编码,对char的扩展,即_T("str")表示T ...

  2. VC++中的char,wchar_t,TCHAR(转载)

    VC++中的char,wchar_t,TCHAR 大家一起做一个项目,经常发现有的人爱用strcpy等标准ANSI函数,有的人爱用_tXXXX函数,这个问题曾经搞的很混乱.为了统一,有必要把来龙去脉搞 ...

  3. string、wstring、cstring、 char、 tchar、int转换方法

    1.string转wstring ? 1 2 3 4 5 6 7 wstring s2ws(const string& s) {  _bstr_t t = s.c_str();  wchar_ ...

  4. TCHAR * 转为char *   和 char  * 转为 TCHAR *

    转码(常用类型和字符转换)转码(常用类型和字符转换) TCHAR * 转为char * char* TCHARToChar(const TCHAR* pTchar) {char* pChar = NU ...

  5. C++中字符三兄弟(WCHAR、CHAR、TCHAR)

    目录 前言 一.与字符集的关系 二.代码实例 三.常见宏 前言 众所周知,C++中的字符分成两种类型:wchar_t和char.其中,WCHAR 对应 wchar_t,CHAR 对应 char,TCH ...

  6. 关于char, wchar_t, TCHAR, _T(),L,宏 _T、TEXT,_TEXT

    char :单字节变量类型,最多表示256个字符, wchar_t :宽字节变量类型,用于表示Unicode字符, 它实际定义在<string.h>里:typedef unsigned s ...

  7. Windows编程 char转tchar

    友链 char* path_3 = (char*)malloc(256 * sizeof(char));if (NULL == path_3) return FALSE;lstrcpyA(path_3 ...

  8. char wchar_t TCHAR

    1.char 是8位字符类型,可以储存不超过256个字符.---多字节(储存英文字符时为1个字节,储存中文字符时为两个字节)ascii 2.wchar_t 是16位或者32位字符类型,跟选择不同的C或 ...

  9. 关于char, wchar_t, TCHAR, _T,L,TEXT,_TEXT,LPSTR,LPCSTR,PWSTR,PCWSTR,LPTSTR,LPCTSTR的区别

    #ifdef UNICODE typedef wchar_t TCHAR; #else typedef unsigned char TCHAR; #endif typedef unsigned cha ...

最新文章

  1. (转) 技术揭秘:海康威视PASCAL VOC2012目标检测权威评测夺冠之道
  2. Fedora 12 安装配置subversion
  3. DWORD dwSendTime =::GetTickCount();
  4. android室内定位+3d,基于Android平台的手机室内定位及导航的设计与实现
  5. A的大小是多少c语言中,C/C+中字符(A)的大小
  6. OpenCV的滤波与卷积
  7. c语言进制转换pdf下载,C语言 十六进制和十进制间的转换.pdf
  8. c#打印程序原码_C#程序打印新行
  9. Bootstrap警告框、弹出提示层、模态框的js插件效果总结
  10. mysql-数据库的设计三范示与ER模型
  11. arraychangekeycase php,浅谈php数组array_change_key_case() 函数和array_chunk()函数
  12. linux计划任务与日志管理(日志分割/切割)
  13. perl语言中数组初始化为空和undef的不同
  14. 【Copy攻城狮日志】借助Taro暴改Nideshop实现电商支付宝小程序雏形
  15. 服务器性能测试 iometer 测试io
  16. 程序员必学的职场人际关系22原则
  17. 【(伪)数论】洛谷1943 Local Maxima
  18. 键盘上特殊符号的中英文名称
  19. NRI的统计学意义与临床意义
  20. Kbone与小程序跨端开发的一些思考

热门文章

  1. 删除你的所有计算机文件的英文,《电脑文件英文对照》.doc
  2. 超微四子星服务器_224核心448线程服务器---Supermicro超微高密四子星 2029BT-HNTR 数量不多只有60台...
  3. umask 和 新建文件、目录的默认权限
  4. 在 Mac 安装Docker
  5. 怎样cp文件夹时忽略指定的文件夹和文件
  6. 热烈庆祝AC70道题
  7. 第二次Java作业2
  8. 淘宝服务端高并发分布式架构的十四次演进之路
  9. asp.net core MVC 过滤器之ExceptionFilter过滤器(一)
  10. 【NOIP校内模拟】塔