char:计算机编程语言(c、c++、Java、VFP等)中可容纳单个字符的一种基本数据类型。

TCHAR:为了满足Unicode编码,对char的扩展,即_T(“str”)表示TCHAR类型

C++支持两种字符串,即常规的ANSI编码(使用""包裹)和Unicode编码(使用L""包裹),这样对应的就有了两套字符串字符串处理函数,比如:strlen和wcslen,分别用于处理两种字符串char和TCHAR类型

winnt.h头文件中:

typedef WCHAR TCHAR, *PTCHAR;

表明 TCHAR 与 WCHAR 属同一类型

char szA[100];                    // ANSI string buffer

WCHAR szW[100];            // Unicode string buffer

// Normal sprintf:all strings are ANSI
sprintf(szA, " %s ","ANSI Str");

// Converts Unicode string to ANSI
sprintf(szA," %S ",L"Unicode Str");

// Normal swprintf:all strings are Unicode
swprintf(szW,L" %s ",L"Unicode Str");

// Converts ANSI string to Unicode

swprintf(szW,L"%S", "ANSI Str");

注意:大写S 和小写s 的使用

===========================


应用实例:通过system函数程序调用启动msc程序

[cpp] view plaincopy print?
  1. void WSUS::OnBnClickedOk()
  2. {
  3. CString strPath = NULL;     // 申请路径字符串(TCHAR)
  4. char strChar[256];  // 申请路径字符串(char)
  5. m_CustomEdit.GetWindowTextW(strPath);   // 获取路径存储到strPath
  6. strPath.Replace(_T("\\"), _T("\\\\"));  // 替换strPath中"\"为"\\",注意转换符
  7. //sprintf(strChar, "%s %S", "mmc.exe", strPath);        // TCHAR转换char类型
  8. sprintf(strChar, "mmc.exe \"%S\"", strPath);        // TCHAR转换char类型
  9. MessageBox(strPath, _T("title"));
  10. system(strChar);                        // 系统函数调用启动msc程序
  11. //WinExec((LPCSTR)_bstr_t(strPath), SW_SHOW);   // 调用exe程序
  12. }
void WSUS::OnBnClickedOk()
{CString strPath = NULL;       // 申请路径字符串(TCHAR)char strChar[256];   // 申请路径字符串(char)m_CustomEdit.GetWindowTextW(strPath); // 获取路径存储到strPathstrPath.Replace(_T("\\"), _T("\\\\")); // 替换strPath中"\"为"\\",注意转换符//sprintf(strChar, "%s %S", "mmc.exe", strPath);      // TCHAR转换char类型sprintf(strChar, "mmc.exe \"%S\"", strPath);        // TCHAR转换char类型MessageBox(strPath, _T("title"));system(strChar);                     // 系统函数调用启动msc程序//WinExec((LPCSTR)_bstr_t(strPath), SW_SHOW);   // 调用exe程序
}

示例步骤:

1、获取msc程序路径strPath

2、替换strPath中"\"为"\\"字符

C:\Windows\System32\gpedit.msc

首先,通过 strPath.Replace(_T("\\"), _T("\\\\")); 转换成:

C:\\Windows\\System32\\gpedit.msc

然后,通过 sprintf(strChar, "%s %S", "mmc.exe", strPath); 拼接字符串为:

mmc.exe C:\\Windows\\System32\\gpedit.msc

3、system函数调用启动msc程序
system(strChar);

4、启动结果如下

VC char和TCHAR之间转换相关推荐

  1. char[],char *,string之间转换

    char []与char *之间转换 char []转char *:直接进行赋值即可 // char[] 转char * char str[] = "lala"; char *st ...

  2. C++ 中 char[],char *,string之间转换

    char []与char *之间转换 char []转char *:直接进行赋值即可 // char[] 转char * char str[] = "lala"; char *st ...

  3. _TCHAR在java中怎么用_char 与 TCHAR之间转换

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

  4. char与TCHAR相互转化

    char与TCHAR之间的转化主要用到函数MultiByteToWideChar和WideCharToMultiByte char转TCHAR 如果不是Unicode字符集,就不需要转换,直接复制即可 ...

  5. BSTR、char* 和 CString 之间的转换 (转)

    BSTR.char* 和 CString 之间的转换 (1) char*转换成CString 若将char*转换成CString,除了直接赋值外,还可使用CString::Format进行.例如: c ...

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

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

  7. C#中char[]与string之间的转换

    C#中char[]与string之间的转换 原文:C#中char[]与string之间的转换 string 转换成 Char[] string ss = "abcdefg"; ch ...

  8. C语言unsigned char、char与int之间的转换

    C语言unsigned char.char与int之间的转换 2016年10月23日 18:40:50 bladeandmaster88 阅读数:11347更多 个人分类: c语言基础 先来看一道题: ...

  9. CString与string、char*的区别和转换

    我们在C++的开发中经常会碰到string.char*以及CString,这三种都表示字符串类型,有很多相似又不同的地方,常常让人混淆.下面详细介绍这三者的区别.联系和转换: 各自的区别 char*: ...

最新文章

  1. java im 框架_Netty实战:设计一个IM框架
  2. jq的ajax和模块引擎
  3. 【机器视觉】 fuzzy_measure_pairing算子
  4. 如何用Python破解验证码,适合新手练手
  5. 两个 Integer 数值之间不建议使用 “==” 进行比较
  6. 326 Power of Three 3的幂
  7. vue项目打包部署到Tomcat上,一刷新就报错404
  8. Oracle数据库的备份方法
  9. 基于 EMD 和小波包的降噪方法研究
  10. 第二篇:Spring Cloud Eureka 服务注册+发现
  11. NTFS与FAT32区别大揭秘
  12. ArcGIS中.shp矢量文件和.lyr图层文件的区别
  13. 【渲染】解决三维出图黑白边缘溢出问题:直通(STRAIGHT)与预乘(PREMULT)ALPHA剖析
  14. 电脑html动态桌面壁纸制作,电脑如何制作动态壁纸_电脑上怎么搞动态壁纸-win7之家...
  15. 小米平板1(A0101)官方线刷包_救砖包_解账户锁
  16. 翻译音频的软件有哪些?将这几个可以翻译音频的软件分享给你
  17. mysql查询选修课的人数_mysql查询语句练习
  18. 原生js做无限弹窗(娱乐)
  19. 机器视觉让工业生产实现智能化
  20. 【傅老师DarkSouls第一季】03

热门文章

  1. C# 使用 Lotus notes 公共邮箱发送邮件
  2. ibatis提示Unable to load embedded resource from assembly Entity.Ce_SQL.xml,Entity.
  3. log4net环境配置
  4. IE与Mozila FireFox 中的 JS
  5. mysql xtrabackup备份工具使用
  6. BZOJ4001[TJOI2015]概率论——卡特兰数
  7. 洛谷 [SDOI2015]约数个数和 解题报告
  8. JavaScriptjQuery.返回多个值的函数
  9. 添加gitignore文件后使其生效
  10. 【VS开发】PCIe体系结构的组成部件