char *p;
CString str=hello;
p=str.GetBuffer(str.GetLength());
str.ReleaseBuffer();
特别注意,转换的时候要分清是Unicode工程,还是ANSI工程,
我在vs2005下的CString转换为char*
例如str = “123”,最后得到的p为 p[0]='1', p[1]=0, p[2] = '2',p[3]=0,p[4] = '3',p[5] = 0
原来GetBuffer返回的是wchar类型的,需要用WideCharToMultiByte转换
WideCharToMultiByte(
二.使用memcpy()函数
CString mCS=_T(hello);
char mch[20];
memcpy(mch,mCS,mCS.GetLength());
三.使用LPCTSTR强制类型转换
char *ch;
ch=(LPSTR)(LPCTSTR)str;
<script type="text/javascript" id="wumiiRelatedItems"> </script>