这个程序那里为什么不出结果?调通立即结贴,请帮我!谢谢

dszch 2002-11-20 04:14:20
//这个程序结果输出本机的IP地址,可是为什么不显示结果呢?
//请指教,调通立即结贴
//IPenum.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"
#include "windows.h"
#include <winsock.h>
#include "stdio.h"
#include "stdlib.h"
#include "string.h"

void print_ip(void)
//只能得到一个IP地址
{
WORD wVersionRequested;
WSADATA wsadata;
char name[255];
CString ip;
PHOSTENT hpstinfo;
wVersionRequested=MAKEWORD(2,0);

if (WSAStartup (wVersionRequested,&wsaData) ==0 )
{
if(GetHostName ( name, sieof(name)) == 0)
{
//如果能够获取计算机主机信息的话,则获取本机IP地址
if ((hostinfo = GetHostByName(name)) != NULL)
{
//获取本机IP地址
LPCSTR ip=inet_ntoa(*(struct in_addr*)*hostinfo->h_addr_list);
//输出IP地址
printf("%s\n",ip);
}
}
WSACleanup();
}
}


//主函数,调用print_ip()函数,输出本机IP地址
int main(int argc, char* argv[])
{
print_ip();
return 0;
}
...全文
26 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
dszch 2002-11-21
  • 打赏
  • 举报
回复
非常感谢!这个问题应该结贴了!
这个问题,我可能还不一定能调通,但是朋友们已经说的很清楚了。对我来讲,这是我的第一个VC++程序,VC++里面我还有很多知识需要看书,学习请教!
等到我把这个程序彻底了解清楚了,语法结构及环境的设置等。再继续调试吧!
再次谢谢上面两位!
newhand2000 2002-11-21
  • 打赏
  • 举报
回复
你抄书抄得不仔细。下面是能跑的东西。另外要在setting里面加上ws2_32.lib才能编译

//#include "stdafx.h"
#include "windows.h"
#include <winsock.h>
#include "stdio.h"
#include "stdlib.h"
#include "string.h"

void print_ip(void)
//只能得到一个IP地址
{
WORD wVersionRequested;
WSADATA wsadata;
char name[255];
// CString ip[100];
PHOSTENT hostinfo;
wVersionRequested=MAKEWORD(2,0);

if (WSAStartup (wVersionRequested,&wsadata) ==0 )
{
if(gethostname ( name, sizeof(name)) == 0)
{
//如果能够获取计算机主机信息的话,则获取本机IP地址
if ((hostinfo = gethostbyname(name)) != NULL)
{
//获取本机IP地址
LPCSTR ip=inet_ntoa(*(struct in_addr*)*hostinfo->h_addr_list);
//输出IP地址
printf("%s\n",ip);
}
}
WSACleanup();
}
}


//主函数,调用print_ip()函数,输出本机IP地址
int main(int argc, char* argv[])
{
print_ip();return 0;
}

popmental 2002-11-21
  • 打赏
  • 举报
回复
#include "stdafx.h"
#pragma pack(1)//可省略
#pragma comment(lib,"ws2_32.lib")

#define WIN32_LEAN_AND_MEAN////可省略
#include <winsock2.h>
#include <windows.h>
#include <stdio.h>
#include <stdlib.h>
void print_ip(void)
//只能得到一个IP地址
{
WORD wVersionRequested;
WSADATA wsaData;
char name[255];
CString ip;
PHOSTENT hostinfo;
wVersionRequested=MAKEWORD(2,0);

if (WSAStartup(wVersionRequested,&wsaData) ==0 )
{
if(gethostname(name,sizeof(name)) == 0)
{
//如果能够获取计算机主机信息的话,则获取本机IP地址
if ((hostinfo = gethostbyname(name)) != NULL)
{
//获取本机IP地址
LPCSTR ip=inet_ntoa(*(struct in_addr*)*hostinfo->h_addr_list);
//输出IP地址
printf("%s\n",ip);
}
}
WSACleanup();
}
}


//主函数,调用print_ip()函数,输出本机IP地址
int main(int argc, char* argv[])
{
print_ip();
return 0;
}
呵呵!谈不上什么审问,只是对于一些网络程序,我一直比较敏感,不要用它来做不好的事情,不管你将来的编程水平多高,把技术编程做坏事的武器,是一种罪恶。大家都是从这个阶段过来的吗?呵呵!!
这个程序因为它使用了一些MFC的类,头文件中有"stdafx.h",所以我建议你可以这样来创建一个工程:file-new-win32 console application-an application thatsupports mfc-finish,然后把工程文件*.cpp中的代码全部删除,在把以上的代码加进去,编译,运行,就可以了。你的问题除了MFC的支持以为,可能书上把几个函数的大小写格式也弄错了,另外确实如 newhand2000所说也缺少了一个动态链接库,希望你天天进步。
popmental 2002-11-20
  • 打赏
  • 举报
回复
程序我已经调试成功了,但是我得问你几个问题,第一:程序从何处来;第二:你懂不懂编程;第三:程序用来做什么,答复后立刻给你调试后的程序。

2,586

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 资源
社区管理员
  • 资源
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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