您的位置:首页 > 其它

获取本机地址信息,遇到小问题...有待解决

2012-09-25 23:31 288 查看
程序代码:

#include "../common/InitSock.h"
#include <stdio.h>
CInitSock initSock;
void main()
{
char szHost[256];
::gethostname(szHost,256);
hostent *pHost = ::gethostbyname(szHost);
in_addr addr;
for(int i =0;;i++)
{
char *p = pHost->h_addr_list[i];
if(p == NULL)
break;
memcpy(&addr.S_un.S_addr, p, pHost->h_length);
char *szIp = ::inet_ntoa(addr);
printf("本地IP地址:%s \n",szIp);
}
}


第一次编译说 找不到 ../common/InitSock.h

然后百度说,自己弄个头文件就行:

#include  <winsock2.h>
#pragma comment(lib, "WS2_32 ")
#pragma comment(lib, "ws2.lib ")    //   链接到WS2_32.lib
class   CInitSock
{
public:
CInitSock(BYTE   minorVer   =   2,   BYTE   majorVer   =   2)
{
//   初始化WS2_32.dll
WSADATA   wsaData;
WORD   sockVersion   =   MAKEWORD(minorVer,   majorVer);
if(::WSAStartup(sockVersion,   &wsaData)   !=   0)
{
exit(0);
}
}

~CInitSock()
{
::WSACleanup();
}
};


然后保存成:initsock.h 但这个方法不好使:

然后继续编译,说是缺少win32.lib...很是奇怪
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐