首页 > OOP语言 > VC++ > 正文

VC中char和TCHAR的数据类型转换
2013-06-02 00:00:00   来源:www.bianceng.cn   评论:0 点击:

暂时无描述信息

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程序
}

相关热词搜索:

上一篇:VC中的图片单击事件Picture Control
下一篇:MFC类库之CArray作为函数参数和返回值

分享到: 收藏