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";的时候就没有问题啦
不明白为什么,求解啊