首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

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

2012-04-06 
在一个edit控件中得到ip地址 在线程中使用 怎么搞?我是给 edit控件加了一个CString类型的变量:IDC_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 UNICODEWideCharToMultiByte(CP_ACP, ...);#elsesprintf(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);

热点排行