关于CSting转换成CHAR*的有关问题,求

关于CSting转换成CHAR*的问题,急求!
关于CSting转换成CHAR*的问题:

在MFC代码中
  CString strSend;

GetDlgItemText(IDC_EDIT_SEND,strSend);

sendto(m_socket,strSend,strSend.GetLength()+1,0,(SOCKADDR*)&addrTo,sizeof(SOCKADDR));

报错:error C2664: “sendto”: 不能将参数 2 从“CString”转换为“const char *”

求高人指点!

------解决方案--------------------
CString.GetBuffer(0);
------解决方案--------------------
C/C++ code

CString strSend;
    int nLen = strSend.GetLength();
    char *pBuffer = new char[nLen+1]; 
strcpy(pBuffer,(const char*)strSend);
    pBuffer[nLen]='\0';

------解决方案--------------------
(char*)m_Str.GetBuffer(m_Str.GetLength())
------解决方案--------------------
最方便的是用_bstr_t。

C/C++ code

_bstr_t strTrans = (LPCTSTR)strSend;
char* pStr = (LPSTR)strTrans;

------解决方案--------------------
CString.GetBuffer(0);出来的是WCHAR*而非char*
说明你的工程设置的是Unicode环境,那么,要么你修改环境为多字节,要么用WcharToMuliteByte()之类的函数来转换。
------解决方案--------------------
探讨
引用:

(char*)m_Str.GetBuffer(m_Str.GetLength())
m_Str.GetBuffer(m_Str.GetLength())返回的是WCHAR* 如果直接(char*)转换的话 数据会出现乱码。

------解决方案--------------------
探讨
引用:
引用:

(char*)m_Str.GetBuffer(m_Str.GetLength())
m_Str.GetBuffer(m_Str.GetLength())返回的是WCHAR* 如果直接(char*)转换的话 数据会出现乱码。

那就用WideCharToMultiByte()转换一下吧:
int cbMultiByte;
cbMult……

------解决方案--------------------
楼主如果是在VC6.0下编译的话,可以直接转:
CString str = "123" ; 
char* ptr = (LPSTR)()(LPCTSTR)str ;