1. 程式人生 > >MFC中 CString與Char[] 的相互轉換

MFC中 CString與Char[] 的相互轉換

為了簡化操作,我寫成了兩個函式:

//CString轉Char[] 返回陣列首元素地址
char * CSocket_ClientDlg::CStringToCharArray(CString str)
{
    int str_len = WideCharToMultiByte(CP_ACP, 0, str, str.GetLength(), NULL, 0, NULL, NULL);//計算位元組數
    char * CharArray = new char[str_len+1];
    WideCharToMultiByte(CP_ACP, 0, str, str.GetLength(), CharArray, str_len, NULL, NULL);
    CharArray[str_len] = '\0'
; return CharArray; }

//Char[]轉CString返回CString
CString CSocket_ClientDlg::CharArrayToCString(char CharArray[])
{
    CString str;
    int Char_len = strlen(CharArray);
    int len = MultiByteToWideChar(CP_ACP, 0, CharArray, Char_len, NULL, 0);//計算字元數
    TCHAR *buf = new TCHAR[len + 1];
    MultiByteToWideChar(CP_ACP, 0
, CharArray, Char_len, buf, len); buf[len] = '\0'; str.Append(buf); delete[]buf; return str; }