CString 转char *解决方法

CString 转char *
CString       str;
m_Inf.GetWindowText(str);
str=str.Right(1);
send(s,p,sizeof(char),0);//此处p是char   *类型,
如何把CString   str   转化为char   *   类型呢。

------解决方案--------------------
char* pBuf = str.GetBuffer(0);
------解决方案--------------------
char* sz = str.GetBuffer(str.GetLength());

------解决方案--------------------
可以直接强制类型转换 (LPTSTR)(LPCTSTR)str,即为char*类型
------解决方案--------------------
char* pBuf = str.GetAt(0);
------解决方案--------------------
char* p = str.GetAt(0);
------解决方案--------------------
“可以直接强制类型转换 (LPTSTR)(LPCTSTR)str,即为char*类型”我是用这个
------解决方案--------------------
send(s,sz,str.GetBuffer(0),0);

str.GetBuffer(0) //从str的内存起誓地址开始。。str.GetBuffer(str.GetLength()) 严重错误,没内存的概念。。哎。

------解决方案--------------------
str.GetBuffer(0) //从str的内存起誓地址开始。。str.GetBuffer(str.GetLength()) 严重错误,没内存的概念。。哎。

---------------------------------------
GetBuffer是返回一个锁定的内存地址,参数是指要锁定的内存长度。。。

好好看看msdn

------解决方案--------------------
char* sz = str.GetBuffer(str.GetLength());
send(s,sz,strlen(sz),0);

这样就行了

------解决方案--------------------
把代码贴全,具体定位在哪一个函数上?
------解决方案--------------------
CString 转 char *:
CString str;
int nLength=str.GetLength();
char * sz=new char[nLength];
sz=str.GetBuffer(0);


------解决方案--------------------
char* sz = (char *)str.GetBuffer(str.GetLength());

强制转换一下就OK了么, 'unsigned short * ' 和 'char * ' 本身就是一回事嘛。

------解决方案--------------------
char* sz=(LPTSTR)(LPCTSTR)str;

------解决方案--------------------

------解决方案--------------------
哎呀……你的CString是Unicode型的,你要是想发Unicode就直接(char*)强制转换之吧,要是不想,可以W2A()
------解决方案--------------------
CHString s( L "abcd " );

printf( "CHString s %S ", (LPCWSTR)s);
LPWSTR p = s.GetBuffer( 10 );
wcscpy( p, L "Hello " ); // directly access CHString buffer
s.ReleaseBuffer( );
printf( "CHString s %S ", (LPCWSTR)s);
------解决方案--------------------
str=str.Right(1);//这样str是\0
int nLength=str.GetLength();
char * sz=new char[nLength];//new出来干什么?
send(s,sz,sizeof(char),0);//sizeof(char)? 你又想干什么?


不明白你想干什么,你试试我改后的
CString str;
m_Inf.GetWindowText(str);
char* sz=(char*)str.GetBuffer(str.GetLength());
send(s,sz,strlen(sz),0);

------解决方案--------------------
用(LPSTR)(LPCSTR)(str)强制转换就可以了,若用GetBuffer,你使用之后还要释放,麻烦
------解决方案--------------------