关于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);
------解决方案--------------------
关于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()之类的函数来转换。
------解决方案--------------------
------解决方案--------------------
------解决方案--------------------
楼主如果是在VC6.0下编译的话,可以直接转:
CString str = "123" ;
char* ptr = (LPSTR)()(LPCTSTR)str ;