它们之间的相互转换方法
6 个解决方案
#1
wchar_t是unicode字符和char不能直接转换
可用win Api
int MultiByteToWideChar(UINT CodePage, DWORD dwFlags, LPCSTR lpMultiByteStr, int cchMultiByte, LPWSTR lpWideCharStr, int cchWideChar)
转换
可用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();
char *s="*";
wchar *p=Widetring(s).BSTR();
====================================
wchar_t *p=L"*";
char *s=AnsiString(p).c_str();
#3
char与wchar不要直接转,因为char要两个字节才能表示一个汉字,
所以对于汉字,一个字节的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)
转换
可用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();
char *s="*";
wchar *p=Widetring(s).BSTR();
====================================
wchar_t *p=L"*";
char *s=AnsiString(p).c_str();
#3
char与wchar不要直接转,因为char要两个字节才能表示一个汉字,
所以对于汉字,一个字节的char单独没有意义;
所以对于汉字,一个字节的char单独没有意义;
#4
读一读windows 核心编程第二章就明白了!
快去看看吧!
快去看看吧!
#5
typedef unsigned short wchar_t;
#6
多谢!