MByteToWChar WCharToMByte
来源:互联网 发布:怎样注册农村淘宝网店 编辑:程序博客网 时间:2024/05/19 06:47
// ----------------------------------------------------------------------------// Description:// This function maps a character string to a wide-character(Unicode) string//// Parameters:// lpcszStr: [in] Pointer to the character string to be converted// lpwszStr: [out] Pointer to a buffer that receives the translated string// dwSize: [in] Size of the buffer// // Return Values:// TRUE : Succeed// FALSE: Failed//// Example:// MByteToWChar(szA, szW, sizeof(szW) / sizeof(szW[0]));// ----------------------------------------------------------------------------BOOL MByteToWChar(LPCSTR lpcszStr, LPWSTR lpwszStr, DWORD dwSize){ // Get the required size of the buffer that receives the Unicode string. DWORD dwMinSize; dwMinSize = MultiByteToWideChar(CP_ACP, 0, lpcszStr, -1, NULL, 0); if(dwSize < dwMinSize) return FALSE; // Convert headers from ASCII to Unicode. MultiByteToWideChar(CP_ACP, 0, lpcszStr, -1, lpwszStr, dwMinSize); return TRUE;}// ----------------------------------------------------------------------------// Description// This function maps a wide-character string to a new character string//// Parameters:// lpcwszStr: [in] Pointer to the character string to be converted// lpszStr: [out] Pointer to a buffer that receives the translated string.// dwSize: [in] Size of the buffer// // Return Values:// TRUE: Succeed// FALSE: Failed//// Example:// WCharToMByte(szw, szA, sizeof(szA) / sizeof(szA[0]));// ----------------------------------------------------------------------------BOOL WCharToMByte(LPCWSTR lpcwszStr, LPSTR lpszStr, DWORD dwSize){ DWORD dwMinSize; dwMinSize = WideCharToMultiByte(CP_OEMCP, NULL, lpcwszStr, -1, NULL, 0, NULL, FALSE); if(dwSize < dwMinSize) return FALSE; WideCharToMultiByte(CP_OEMCP, NULL, lpcwszStr, -1, lpszStr, dwSize, NULL, FALSE); return TRUE;}// 这两个函数的求缺点在于无法动态分配内存,在转换很长的字符串时可能会浪费// 较多内存空间;优点是,在不考虑浪费空间的情况下转换较短的字符串非常方便/************************************************************************ 函数:TransCStringToTCHAR* 描述: 将CString转换为TCHAR** 日期: 2017/5/20***********************************************************************/TCHAR* CPublic::CString2TCHAR(CString &str){ // 将最后的'\0'也计算在长度内 int iLen = str.GetLength(); TCHAR* szRs = new TCHAR[iLen]; lstrcpy(szRs, str.GetBuffer(iLen)); str.ReleaseBuffer(); return szRs;}/************************************************************************ 函数:TCHAR2char* 描述:将TCHAR*转换为char** 日期: 2017/5/20***********************************************************************/char* CPublic::TCHAR2char(TCHAR* tchStr){ int iLen = 2 * wcslen(tchStr); char* chRtn = new char[iLen + i]; wcstombs(chRtn, tchStr, iLen + 1); return chRtn;}/************************************************************************函数: CString2char*描述: 将CString转换为char**日期: 2017/5/20***********************************************************************/char* CPublic::CString2char(CString &str){ int iLen = str.GetLength(); // CString的长度中汉字算一个长度 char* chRtn = (char*)malloc((iLen * 2 + 1) * sizeof(char)); memset(chRtn, 0, 2 * iLen + 1); USES_CONVERSION; strcpy((LPSTR)chRtn, OLE2A(str.LoadString())); return chRtn;}/************************************************************************函数名: GetAnsiString*描述: 将CString(Unicode)转换为char*(ANSI)*参数: CString &str要转换的CString*返回值: 返回转换结果*创建日期:2017/5/20***********************************************************************/char* GetAnsiString(const CString &str){ int nSize = 2 * str.GetLength(); char *pAnsiString = new char[nSize + 1]; wcstombs(pAnsiString, str, nSize + 1); return pAnsiString;}
阅读全文
0 0
- MByteToWChar WCharToMByte
- FFmpeg常用命令记录(1):录取屏幕、剪切视频、将视频转化为GIF
- jquery入口函数
- PageRank算法
- Enemy is weak
- Swift 文件 只有 import Foundation 而需要UIViewController
- MByteToWChar WCharToMByte
- TensorFlow CIFAR-10数据集
- CSS设计美丽之横排页面(小作品)
- nginx 点播mp4方法
- RSA私钥和公钥文件格式 (pkcs#7, pkcs#8, pkcs#12, pem)
- HSSFSheet导出excel
- 二维数组
- VS中C++静态/动态库文件的编译调试与使用
- 页面滚动到特定位置