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 ANSIsprintf(szA, "%s","ANSI Str");// Converts Unicode string to ANSIsprintf(szA,"%S",L"Unicode Str");// Normal swprintf:all strings are Unicodeswprintf(szW,L"%s",L"Unicode Str");// Converts ANSI string to Unicodeswprintf(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程序
}
示例步骤:
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、启动结果如下
分享到:
相关推荐
转 String,CString,TCHAR,char之间区别和联系
Visual C++ 2005中CHAR,TCHAR,CString间转换函数
各种字符串类型的转换方法,留着备份以后使用
介绍char_TCHAR_WCHAR三种类型的区别
详细介绍了VC++中的char wchar_T和TCHAR的含义及区别,对于想了解各种编码的初学者有着较大用处
详细的介绍了char wchar TCHAR的联系和区别,非常适合初学者了解
vc各种数据类型相互转换 包括基本数据类型与CString类型的相互转换 TCHAR和CString的相互转换 TCHAR与BSTR的相互转换 BSTR与CString的相互转换 DWORD与WORD的相互转换 WORD与BYTE的相互转换 COLORREF与RGB分量的相互...
当在 windows 下开发程序库时,使用 TCHAR 类型,比直接使用 char 和 wchar_t 具有更好的移植性。但是在编写动态链接库时,不能直接导出 TCHAR 类型的函数,给 TCHAR 类型函数的使用带来了一些限制。使用 texport 在...
(UNICODE 与非UNICODE导致的问题),CString,TCHAR和CHAR类型的互转.docx 没有定义UNICODE,所以它里面的字符串就是简单用" "就行了,创建工程的时候包含了UNICODE定义,就必须对TCHAR和char进行转换。
能够有效的将QString转换为TCHAR*,编译运行通过
10多个vc 数据类型转换编程实例,如何给VARIANT类型赋值、如何将BSTR类型转换成CString类型、如何将CString类型转换成TCHAR类型、如何将BYTE类型转换成WORD类型、如何将BYTE转换成KB、MB和GB、如何将COLORREF类型...
VC++中的char,wchar_t,TCHAR,主要讲解char,wchar_t,TCHAR的用法及区别,适合初学者了解相关内容
CString、LPCTSTR、LPTSTR、TCHAR、WCHAR、string、wchar_t、char解析 CString、LPCTSTR、LPTSTR、TCHAR、WCHAR、string、wchar_t、char解析 CString、LPCTSTR、LPTSTR、TCHAR、WCHAR、string、wchar_t、char解析
该文件中有各种数据类型之间的转换。有CString、BYTE、TCHAR、BSTR、WORD等
texport用于自动生成 TCHAR 类型程序的 char 和 wchar_t 类型的函数调用存根
string,wstring,CString,TCHAR,char*之间常用转换 ,C/C++语言实现。
其中char和string之间、wchar_t和wstring之间的转换较为简单,代码在vs2010下测试通过。 代码如下:#include <iostream>#include <string>#include <tchar>#include using namespace std; //Converting a WChar ...
TCHAR 函数
typedef char TCHAR; #endif #ifdef UNICODE #define _tcscpy wcscpy #else #define _tcscpy strcpy #endif 再来看_tmain()的定义 #ifdef UNICODE #define _tmain wmain #define _tWinMain ...
关于char,_wchar_t,_TCHAR,__T(),L,宏__T、TEXT,_TEXT、L.