在VC6下面使用gethostname,编译时不能通过。
error C2065: 'gethostname' : undeclared identifier我查了一下MSDN,定义如下:
Header Declared in Winsock2.h. 
Library Link to Ws2_32.lib. 
DLL Requires Ws2_32.dll. 问题是如果我#include <Winsock2.h>,link的时候还是有问题:
error LNK2001: unresolved external symbol __imp__gethostname@8
这是怎么一回事?是不是vc的环境没有正确设置?如果是,应该怎么设置?另外,还有一个很菜鸟的问题:
我如果不想通过添加头文件的方式,而是将其设为dll或者lib,应该在什么地方进行设置?谢谢。

解决方案 »

  1.   

    Alt +F7,link,catalogue,general....然后添加那个lib就可以了,当然要保证VC的搜索路径可以找到它
      

  2.   

    第一种方法
    project->settings ->link->object/library modules 加上Ws2_32.lib第二种方法
    #pragma comment(lib, "Ws2_32.lib")
      

  3.   

    我加上了Ws2_32.lib之后还是有错:
    error C2065: 'gethostname' : undeclared identifier
    难道还是需要#include <Winsock2.h>?
      

  4.   

    需要同时#include <Winsock2.h>,加上Ws2_32.lib
      

  5.   

    还需要#include <Winsock2.h>
      

  6.   

    Thanks a lot!
    但是好像我下面的代码总是不能得到正确的主机名字啊:
    char szAddress[128];
    memset(szAddress,0,128);
    gethostname(szAddress,128);
    执行完了之后szAddress中全部是0啊,为什么这个函数没有企作用?
      

  7.   

    哪位大侠帮帮忙啊。
    gethostname返回值是-1,
    随后的WSAGetLastError返回值是10093
    why?
      

  8.   

    应用程序没有调用 WSAStartup,或者 WSAStartup 失败。