1 /************************************************************************/
2 /* 函数说明:Unicode 转 ASCII
3 /* 参 数:Unicode数据、ASCII接收缓存、缓存大小
4 /* 返 回 值:转换成功返回TRUE 否则返回FALSE
5 /************************************************************************/
6 BOOL WCharToMByte(IN LPCWSTR lpcwszStr, OUT LPSTR lpszStr, IN DWORD dwSize)
7 {
8
9 DWORD dwMinSize;
10
11 dwMinSize = WideCharToMultiByte(CP_OEMCP,NULL,lpcwszStr,-1,NULL,0,NULL,FALSE);
12
13 if(dwSize < dwMinSize)
14 return FALSE;
15
16 WideCharToMultiByte(CP_OEMCP,NULL,lpcwszStr,-1,lpszStr,dwSize,NULL,FALSE);
17
18 return TRUE;
19 }
20
21 /************************************************************************/
22 /* 函数说明:ASCII 转 Unicode
23 /* 参 数:ASCII数据、Unicode接收缓存、缓存大小
24 /* 返 回 值:转换成功返回TRUE 否则返回FALSE
25 /************************************************************************/
26 BOOL MByteToWChar(LPCSTR lpcszStr, LPWSTR lpwszStr, DWORD dwSize)
27 {
28 DWORD dwMinSize;
29
30 dwMinSize = MultiByteToWideChar (CP_ACP , 0, lpcszStr, -1, NULL, 0);
31
32 if(dwSize < dwMinSize)
33 return FALSE;
34
35 MultiByteToWideChar (CP_ACP, 0, lpcszStr, -1, lpwszStr, dwMinSize);
36
37 return TRUE;
38 }