GetDlgItemText()获得内容给Gethostbyaddr()调用的问题

食仁魔法师 2012-04-22 10:05:51
最近试着谢了个基于对话框的聊天程序,但是在调用Gethostbyaddr()的时候出现错

我有一个char* desthost的变量,当我从用如下方法使用的出现错误
CString strip;
GetDlgItemText(IDC_PEER_IP,strip);
desthost = (LPSTR)(LPCTSTR)strip ;

hostent *hostdata;
if ( atoi(desthost) ) // 是否IP地址为标准形式
{
u_long ip = inet_addr( host );
hostdata = gethostbyaddr( (char *)&ip, sizeof(ip), AF_INET );
}
else // 否则则可能是机器名
{
hostdata = gethostbyname( host );
}

if ( !hostdata )
{
//printf("Error in fetching computer name\n");

AfxMessageBox("Error in fetching computer name",MB_OK,0);
fflush(0);
return false;
}

编译连接后都没有问题,但是运行的时候发现出现了消息框提示:Error in fetching computer name(注:对话框中输入的是:127.0.0.1)

但是如果我不用对话框中获得的值给desthost 赋值而是直接搞个 desthost = "127.0.0.1";的时候就没有问题啦
不明白为什么,求解啊
...全文
29 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
就叫我海 2012-04-25
  • 打赏
  • 举报
回复
看你代码里面那个host哪里来的...
应该是desthost吧,,
还有那个atoi可以判断它是输入的IP吗????
hdg3707 2012-04-22
  • 打赏
  • 举报
回复
你单步执行,看看:desthost = (LPSTR)(LPCTSTR)strip 到底得到的是什么值,是不是和你直接赋值得到一样,如果一样,再单步往下一步一步执行,看每一步的值对不对,这样和直接赋值进行每步执行的时候值一对比就知道问题在哪了

18,356

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 网络编程
c++c语言开发语言 技术论坛(原bbs)
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧