Cstring 与 char*的转换

使用unicode的会存在宽字节和单字节之间的转换:
CString转char *
1、使用WideCharToMultiByte函数,其中mWcount为CString类型。

char* _wParam = (char*) malloc( sizeof(char) * 10);             // = (LPSTR)(LPCTSTR)m_CalibrationData.mWcount;
    int len = WideCharToMultiByte(CP_ACP,0,mWcount,mWcount.GetLength()+1,
        NULL,0,NULL,NULL);
    WideCharToMultiByte(CP_ACP,0,mWcount,mWcount.GetLength()+1,
        _wParam,len,NULL,NULL);

2、使用W2A转换
需要加上头文件:#include <afxpriv.h>

USES_CONVERSION; _hParam = W2A(mHcount);

3、如果都是单字节存储可以直接转换为char *

char* _hParam = (LPSTR)(LPCTSTR)mHcount;

如果需要将char* 转CString 以上的方法依然可行。可以使用
A2W()、MultiByteToWideChar()。

你可能感兴趣的:(unicode,CString)