MFC socket 编程 我想从编辑框中取出地址进行分析,可是总是失败

CStrings1,s2;GetDlgItemText(IDC_EDIT1,s1);//从编辑框A中取出地址GetDlgItemText(IDC_EDIT2,s2);//... CString s1,s2;
GetDlgItemText(IDC_EDIT1 ,s1);//从编辑框A中取出地址
GetDlgItemText(IDC_EDIT2 ,s2);//从编辑框B中取出端口号

sockaddr_in serverip;
const char *p1=(LPSTR)(LPCTSTR)s1;//转换
const char *p2=(LPSTR)(LPCTSTR)s2;//转换
///////////////////////////////////////
// ULONG uAddr=::inet_addr(p1);//经测试,这样写是错误的
ULONG uAddr=::inet_addr("121.248.55.68");
//////
serverip.sin_addr.S_un.S_addr=uAddr;
serverip.sin_family=AF_INET;
/////////////////////////////////////
//int port=atoi(p2);
//serverip.sin_port=htons(port);//这样写也是错误的
serverip.sin_port=htons(8080);

现在我只能预先将地址和端口号写在软件里,好蛋疼
展开
 我来答
空雪梦见
2014-02-21 · TA获得超过5598个赞
知道大有可为答主
回答量:2522
采纳率:75%
帮助的人:1206万
展开全部
何?
我想知道你下面那个“这样写也是错误的”是什么情况
上面那个地址的可以通过编译的话,
下面那个端口的应该通不过编译了吧?

上面我看到把LPCTSTR强转到LPSTR,其中最明显的变化是T没掉了:TSTR变成了STR
如果不强转LPSTR就不能编译(或者说不强转LPCSTR)的话,……

如果确实如我所说,那么八成是你的工程是设置为“使用Unicode字符集”了
改成“使用多字节字符集”可以解决,或者自己将Unicode字符串转为多字节编码字符串可解决。
I多多问题多多
2014-02-21 · TA获得超过379个赞
知道小有建树答主
回答量:158
采纳率:0%
帮助的人:101万
展开全部
方法不对哦
DWORD dwIP;
((CIPAddressCtrl*)GetDlgItem(IDC_IPADDRESS2))->GetAddress(dwIP);
addrSock.sin_addr.S_un.S_addr=htonl(dwIP);
注意:IDC_IPADDRESS2不是一般的编辑框而是IP地址编辑框控件。

端口号:关联一个成员变量就可以了 直接用
如: addrSock.sin_port=htons(m_toport);//m_toport是关联的编辑框变量
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式