c++ - Winsock编程

标签 c++ build winsock linker-errors

自从我开始使用 Winsock 以来,我除了遇到麻烦外什么也没有。我似乎无法初始化 Winsock 来挽救我的生命。我不要求任何人编写整个程序(我知道这有多烦人)我只需要 Winsock 方面的帮助。我尝试了几种编译器,但总是会出现奇怪的错误。

1>Compiling...
1>main.cpp
1>Linking...
1>main.obj : error LNK2019: unresolved external symbol __imp__WSACleanup@0 referenced in function _main
1>main.obj : error LNK2019: unresolved external symbol __imp__WSAStartup@8 referenced in function _main
1>C:\Users\Rory\ProjectX\ProjectX\Debug\ProjectX.exe : fatal error LNK1120: 2 unresolved externals
1>Build log was saved at "file://c:\Users\Rory\ProjectX\ProjectX\ProjectX\Debug\BuildLog.htm"
1>ProjectX - 3 error(s), 0 warning(s)
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========

这是我的代码:

#include <cstdlib>
#include <iostream>
#include <string.h>
#include <winsock2.h>

int iReqWinsockVer = 2;

using namespace std;

int main()
{
    cout<<"Initializing Winsock 2...\n";

    // WINSOCK INITIALIZATION

WSADATA wsaData;

if (WSAStartup(MAKEWORD(iReqWinsockVer,0), &wsaData)==0) {
    // Check if major version is at least iReqWinsockVer
    if (LOBYTE(wsaData.wVersion) >= iReqWinsockVer) {
        // Network stuff here
    }
    else {
        // Required version not available
    }

    // Cleanup winsock
    if (WSACleanup()!=0) {
        // cleanup failed
        }
    }
else {
    //  startup failed
}
    // END WINSOCK INITIALIZATION

        system("PAUSE");
    }

最佳答案

添加 ws2_32.lib 作为链接器输入。

项目属性->链接器->输入页

在该页面上,您将看到附加依赖项。 放在那里——注意库名要用空格隔开 或者您可以将此行直接添加到您的源文件中:

#pragma comment(lib, "ws2_32.lib") 

关于c++ - Winsock编程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9821108/

相关文章:

c++ - Segfault声明类型为vector <shared_ptr <int >>的变量

linux - 从 bash 或 node 写入终端环境

debugging - cmake:如何在调试和 Release模式下构建 opencv?

c++ - 客户端套接字可绑定(bind)但不可连接,因为已在使用中

c++ - 在连接 (ping) 之前验证 IP 地址(主机)是否存在

c++ - 范围 3D map 可视化(使用 vtk?)

c++ - 源文件中未公开的私有(private)成员变量与全局变量

c++ - 从模板派生类转换为模板基类

c# - 选择构建服务器

sockets - TCP 发送/接收错误报告