在一个edit控件中得到ip地址 在线程中使用 如何搞

在一个edit控件中得到ip地址 在线程中使用 怎么搞?
我是给 edit控件加了一个CString类型的变量:IDC_EDIT_IP CString m_edit_ip
在线程里 addrSrv.sin_addr.S_un.S_addr=inet_addr(pDlg->m_edit_ip);
报错:error C2664: 'inet_addr' : cannot convert parameter 1 from 'class CString' to 'const char *'

要是换成 addrSrv.sin_addr.S_un.S_addr=inet_addr(pDlg->m_edit_ip.LockBuffer());
报错:error C2664: 'inet_addr' : cannot convert parameter 1 from 'unsigned short *' to 'const char *'



------解决方案--------------------
#include<AtlBase.h>

USES_CONVERSION;

addrSrv.sin_addr.S_un.S_addr=inet_addr(T2A(pDlg->m_edit_ip));
------解决方案--------------------
addrSrv.sin_addr.S_un.S_addr=(char*)inet_addr(pDlg->m_edit_ip.LockBuffer());

------解决方案--------------------
将CString转成char*

C/C++ code
CString str = _T("...");
char buf[...] = {0};
#ifdef UNICODE
WideCharToMultiByte(CP_ACP, ...);
#else
sprintf(buf, "%s", str);
#endif

------解决方案--------------------
addrSrv.sin_addr.S_un.S_addr=inet_addr((LPSTR)(LPCTSTR)pDlg->m_edit_ip);

------解决方案--------------------
addrSrv.sin_addr.S_un.S_addr=inet_addr(CW2A(pDlg->m_edit_ip));
------解决方案--------------------
addrSrv.sin_addr.S_un.S_addr=inet_addr((char*)(_bstr_t)pDlg->m_edit_ip);