谢谢楼上几位
原来是CString 和 char* 之间的转换问题;
刚才测试了一下 char* 与CString 之间的转换
char* ->CString
CString类的构造函数 和=号操作符都可行
CString ->char *
没有完全正确的办法了
char *a=new char[100];
CString str("aaa");
a[i]=str[i];//挨个儿赋值 很明显中文必错
wcstombs(a,str,str.GetLength());//类似于挨个儿赋值 中文必错
a=(char*)str.GetBuffer(str.GetLength());str.LockBuffer();
a=(char *)(LPTSTR)(LPCTSTR)str;
//把str的地址传给a 很明显是错的 除非你这样用它MessageBox((wchar_t*)a);而且str变量被锁定了