|
int nLen = 0;
int nMemLen = 0;

CString str(_T("C:\\中文字符測試\\jpg"));
nLen = str.GetLength();
//字符串轉換 CString 轉為 char*
const UINT wLen = str.GetLength() + 1;
UINT aLen = WideCharToMultiByte(CP_ACP,0,str,wLen,NULL,0,NULL,NULL); //alen為20,包含了最后的 \0
char* pChar = new char[aLen];
WideCharToMultiByte(CP_ACP,0,str,wLen,pChar,aLen,NULL,NULL);
nLen = strlen(pChar); //nLen 為 19 strlen不包含 \0
nMemLen = sizeof(char)*nLen;

//將lpa使用memcpy拷貝到新申請的char中去
char* pCharDest = new char[nLen+1];
memcpy(pCharDest,pChar,nLen);
pCharDest[nLen]='\0';//最后要加上一個\0
nLen = strlen(pCharDest);

//將CString 拷貝到wchar數(shù)組中
TCHAR* pWChar = str.GetBuffer();
nLen = _tcslen(pWChar); //這個長度和str的長度是一樣的,都是13

TCHAR* pWCharDest = new TCHAR[nLen+1];
wmemcpy(pWCharDest,pWChar,nLen);
pWCharDest[nLen]=_T('\0');
nLen = _tcslen(pWCharDest);
nMemLen = sizeof(TCHAR)*nLen;
|