VC char和TCHAR之间转换
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程序
- void WSUS::OnBnClickedOk()
- {
- CString strPath = NULL; // 申请路径字符串(TCHAR)
- char strChar[256]; // 申请路径字符串(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程序
- }
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之间转换相关推荐
- char[],char *,string之间转换
char []与char *之间转换 char []转char *:直接进行赋值即可 // char[] 转char * char str[] = "lala"; char *st ...
- C++ 中 char[],char *,string之间转换
char []与char *之间转换 char []转char *:直接进行赋值即可 // char[] 转char * char str[] = "lala"; char *st ...
- _TCHAR在java中怎么用_char 与 TCHAR之间转换
char:计算机编程语言(c.c++.java.VFP等)中可容纳单个字符的一种基本数据类型. TCHAR:为了满足Unicode编码,对char的扩展,即_T("str")表示T ...
- char与TCHAR相互转化
char与TCHAR之间的转化主要用到函数MultiByteToWideChar和WideCharToMultiByte char转TCHAR 如果不是Unicode字符集,就不需要转换,直接复制即可 ...
- BSTR、char* 和 CString 之间的转换 (转)
BSTR.char* 和 CString 之间的转换 (1) char*转换成CString 若将char*转换成CString,除了直接赋值外,还可使用CString::Format进行.例如: c ...
- VC++中的char,wchar_t,TCHAR(转载)
VC++中的char,wchar_t,TCHAR 大家一起做一个项目,经常发现有的人爱用strcpy等标准ANSI函数,有的人爱用_tXXXX函数,这个问题曾经搞的很混乱.为了统一,有必要把来龙去脉搞 ...
- C#中char[]与string之间的转换
C#中char[]与string之间的转换 原文:C#中char[]与string之间的转换 string 转换成 Char[] string ss = "abcdefg"; ch ...
- C语言unsigned char、char与int之间的转换
C语言unsigned char.char与int之间的转换 2016年10月23日 18:40:50 bladeandmaster88 阅读数:11347更多 个人分类: c语言基础 先来看一道题: ...
- CString与string、char*的区别和转换
我们在C++的开发中经常会碰到string.char*以及CString,这三种都表示字符串类型,有很多相似又不同的地方,常常让人混淆.下面详细介绍这三者的区别.联系和转换: 各自的区别 char*: ...
最新文章
- java im 框架_Netty实战:设计一个IM框架
- jq的ajax和模块引擎
- 【机器视觉】 fuzzy_measure_pairing算子
- 如何用Python破解验证码,适合新手练手
- 两个 Integer 数值之间不建议使用 “==” 进行比较
- 326 Power of Three 3的幂
- vue项目打包部署到Tomcat上,一刷新就报错404
- Oracle数据库的备份方法
- 基于 EMD 和小波包的降噪方法研究
- 第二篇:Spring Cloud Eureka 服务注册+发现
- NTFS与FAT32区别大揭秘
- ArcGIS中.shp矢量文件和.lyr图层文件的区别
- 【渲染】解决三维出图黑白边缘溢出问题:直通(STRAIGHT)与预乘(PREMULT)ALPHA剖析
- 电脑html动态桌面壁纸制作,电脑如何制作动态壁纸_电脑上怎么搞动态壁纸-win7之家...
- 小米平板1(A0101)官方线刷包_救砖包_解账户锁
- 翻译音频的软件有哪些?将这几个可以翻译音频的软件分享给你
- mysql查询选修课的人数_mysql查询语句练习
- 原生js做无限弹窗(娱乐)
- 机器视觉让工业生产实现智能化
- 【傅老师DarkSouls第一季】03
热门文章
- C# 使用 Lotus notes 公共邮箱发送邮件
- ibatis提示Unable to load embedded resource from assembly Entity.Ce_SQL.xml,Entity.
- log4net环境配置
- IE与Mozila FireFox 中的 JS
- mysql xtrabackup备份工具使用
- BZOJ4001[TJOI2015]概率论——卡特兰数
- 洛谷 [SDOI2015]约数个数和 解题报告
- JavaScriptjQuery.返回多个值的函数
- 添加gitignore文件后使其生效
- 【VS开发】PCIe体系结构的组成部件