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

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

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

winnt.h头文件中:

typedef WCHAR TCHAR, *PTCHAR;

表明 TCHAR 与 WCHAR 属同一类型

char szA[];                    // ANSI string buffer
WCHAR szW[]; // 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程序

void WSUS::OnBnClickedOk()
{
CString strPath = NULL;   // 申请路径字符串(TCHAR)
char strChar[]; // 申请路径字符串(char) m_CustomEdit.GetWindowTextW(strPath); // 获取路径存储到strPath strPath.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程序
}

VC++中char和TCHAR之间转换的更多相关文章

  1. C# .Net 多进程同步 通信 共享内存 内存映射文件 Memory Mapped 转 VC中进程与进程之间共享内存 .net环境下跨进程、高频率读写数据 使用C#开发Android应用之WebApp 分布式事务之消息补偿解决方案

    C# .Net 多进程同步 通信 共享内存 内存映射文件 Memory Mapped 转 节点通信存在两种模型:共享内存(Shared memory)和消息传递(Messages passing). ...

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

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

  3. C#中char[]与string之间的转换;byte[]与string之间的转化

    目录 1.char[]与string之间的转换 2.byte[]与string之间的转化 1.char[]与string之间的转换 //string 转换成 Char[] string str=&qu ...

  4. 一段代码了解Java中char和int的转换

    题目要求: 将输入的大写字母转成对应小写的后5个,如A转换后为f:如果转换后大于z则从a重新计,即多出1就转成a,多出2就转成b以此类推. Java代码: ```java private static ...

  5. char[]与TCHAR[]互相转换引发的一个问题!

      软件的一个驱动由于开发的年代比较久一些,使用的是非Unicode编码,而当前新的软件使用的是Unicode编码,于是将非Unicode驱动用于Unicode软件上时,就出现了问题! 问题就出现在非 ...

  6. C++中char*与wchar_t*之间的转换

    http://blog.163.com/tianshi_17th/blog/static/4856418920085209414977/ 关于C++中的char*与wchar_t*这两种类型的相互转换 ...

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

    string 转换成 Char[] string ss = "abcdefg"; char[] cc = ss.ToCharArray(); Char[] 转换成string st ...

  8. c++ 中 char 与 string 之间的相互转换问题

    第一部分: 将  char *    或者    char []   转换为  string 可以直接赋值,转换. 第二部分: 将   string   转换为 char *    或者    cha ...

  9. stl中char 与wchar 的转换

    学习记录: stl中 字符串 str自然对应的是string 宽字符串wchar 对应的是wstring 宽字符串占用两个字节 两者的转换有三种办法 1 windows 的api转换函数WideCha ...

随机推荐

  1. OSPF-1-OSPF的数据库交换(2)

    2.Hello过程: (1)在同一子网中发现其他运行OSPF的路由器 所有启用了OSPF的接口,都会监听发往224.0.0.5的组播Hello消息,这是表示所有OSPF路由器的组播地址.Hello包使 ...

  2. FMDB存储模型对象(以二进制存储)用NSKeyedArchiver archivedDataWithRootObject序列号,NSKeyedUnarchiver unarchiveObjectWithData反序列化(重点坑是sql语句@"insert into t_newsWithChannel (nwesName,newsType) values (?,?)")一定要用占位符

    交友:微信号 dwjluck2013 一.封装FMDB单例 (1)JLFMDBHelp.h文件 #import <Foundation/Foundation.h> #import < ...

  3. Codeforces Round #390 (Div. 2) D

    All our characters have hobbies. The same is true for Fedor. He enjoys shopping in the neighboring s ...

  4. 100 Same Tree 相同的树

    给定两个二叉树,写一个函数来检查它们是否相同.如果两棵树在结构上相同并且节点具有相同的值,则认为它们是相同的.示例 1:输入 :      1         1             / \    ...

  5. 098 Validate Binary Search Tree 验证二叉搜索树

    给定一个二叉树,判断其是否是一个有效的二叉搜索树.一个二叉搜索树有如下定义:    左子树只包含小于当前节点的数.    右子树只包含大于当前节点的数.    所有子树自身必须也是二叉搜索树.示例 1 ...

  6. 使用express+mongoDB搭建多人博客 学习(1) 安装blog工程

    一.安装 1.安装express npm install -g expressnpm install -g express-generator 2.用ejs做模板,新建blog工程express -e ...

  7. js判断网页访问设备类型

    有时候我们会需要来根据不同的设备访问进行不同的操作,在网上找了一下,主要是根据Navigator对象, if(/Android|Windows Phone|webOS|iPhone|iPod|Blac ...

  8. 前端之Html元素的分类

    一.html元素可分为三大类:块元素.内联元素.可变元素 1.块元素: 常见块状元素:div,p,ul,ol,li,dl,dt,dd,form,hr,table,tr,td,h1-h6,filedse ...

  9. AJPFX总结hashmap和hashtable的区别

    Hashtable和HashMap类有三个重要的不同之处.第一个不同主要是历史原因.Hashtable是基于陈旧的Dictionary类的,HashMap是Java 1.2引进的Map接口的一个实现. ...

  10. Java基础之入门介绍

    基础知识 1.JVM.JRE和JDK的区别:     JVM(Java Virtual Machine):java虚拟机,用于保证java的跨平台的特性.                   java ...