在做类型转换时查到这样的方案
CString m_Head;
char *codefile;
codefile=(LPSTR)(LPCTSTR)m_Head;
然而在使用时发现这样的转换是不对的,跟代码发现char*的变量只取得了CString类型的地址和第一个字符,从而导致在转换后的值被使用的时候和原CString变量不一致造成错误。
正确的方案示例:(WideCharToMultiByte百度百科各个参数意义)
//在Unicode编码模式
int iStaNumLenth = WideCharToMultiByte( CP_ACP, 0, m_strStaNum, -1, NULL, 0, NULL, NULL );
char *chStaNum = new char[ iStaNumLenth+1 ] ;
WideCharToMultiByte( CP_ACP, 0, m_strStaNum, -1, chStaNum, iStaNumLenth, NULL, NULL );