TCHAR和CHAR类型的互转

Posted 于光远

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了TCHAR和CHAR类型的互转相关的知识,希望对你有一定的参考价值。

http://blog.csdn.net/ahjxly/article/details/8494217

http://blog.csdn.net/b_h_l/article/details/7581519

http://blog.chinaunix.net/uid-339069-id-3402668.html

没有定义UNICODE,所以它里面的字符串就是简单用" "就行了,创建工程的时候包含了UNICODE定义,就必须对TCHAR和char进行转换。

void TcharToChar(const TCHAR * tchar, char * _char)
{
    int iLength;
    //获取字节长度   
    iLength = WideCharToMultiByte(CP_ACP, 0, tchar, -1, NULL, 0, NULL, NULL);
    //将tchar值赋给_char    
    WideCharToMultiByte(CP_ACP, 0, tchar, -1, _char, iLength, NULL, NULL);
}

void CharToTchar(const char * _char, TCHAR * tchar)
{
    int iLength;
    iLength = MultiByteToWideChar(CP_ACP, 0, _char, strlen(_char) + 1, NULL, 0);
    MultiByteToWideChar(CP_ACP, 0, _char, strlen(_char) + 1, tchar, iLength);
}

表明 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 的使用

 

 

以上是关于TCHAR和CHAR类型的互转的主要内容,如果未能解决你的问题,请参考以下文章

plsql存储过程日期类型和天的互转

如何实现FlinkIceberg和Hive数据类型之间的互转

如何实现FlinkIceberg和Hive数据类型之间的互转

28可变参数和集合数组的互转

java中数组和ArrayList的互转

goLang实现不同类型的切片间互转