请问wchar_t跟char有何区别,wchar_t*和char*呢?如何相互转换?

时间:2021-07-01 20:14:08
另外,还有WinAPI中的数据类型,请介绍一下,
它们之间的相互转换方法

6 个解决方案

#1


wchar_t是unicode字符和char不能直接转换
可用win Api
int MultiByteToWideChar(UINT CodePage, DWORD dwFlags, LPCSTR lpMultiByteStr, int cchMultiByte, LPWSTR lpWideCharStr, int cchWideChar)
转换

#2


要借助于AnsiString与WideString互换;
    char *s="*";
    wchar *p=Widetring(s).BSTR();
 ====================================
    wchar_t *p=L"*";
    char *s=AnsiString(p).c_str();


#3


    char与wchar不要直接转,因为char要两个字节才能表示一个汉字,
所以对于汉字,一个字节的char单独没有意义;

#4


读一读windows 核心编程第二章就明白了!


快去看看吧!

#5


typedef unsigned short wchar_t;

#6


多谢!

#1


wchar_t是unicode字符和char不能直接转换
可用win Api
int MultiByteToWideChar(UINT CodePage, DWORD dwFlags, LPCSTR lpMultiByteStr, int cchMultiByte, LPWSTR lpWideCharStr, int cchWideChar)
转换

#2


要借助于AnsiString与WideString互换;
    char *s="*";
    wchar *p=Widetring(s).BSTR();
 ====================================
    wchar_t *p=L"*";
    char *s=AnsiString(p).c_str();


#3


    char与wchar不要直接转,因为char要两个字节才能表示一个汉字,
所以对于汉字,一个字节的char单独没有意义;

#4


读一读windows 核心编程第二章就明白了!


快去看看吧!

#5


typedef unsigned short wchar_t;

#6


多谢!