【问题标题】:Winsock ProgrammingWinsock 编程
【发布时间】:2012-03-22 11:08:58
【问题描述】:

自从我开始使用 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");
    }

【问题讨论】:

    标签: c++ build winsock linker-errors


    【解决方案1】:

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

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

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

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

    【讨论】:

    • +1 完全正确 - 这不是远程 Winsock 初始化问题,只是标准构建时链接器“未解决”。
    【解决方案2】:

    不要忘记在包含 windows 标头之前定义 WINDOWS_LEAN_AND_MEAN 宏。否则你会得到大量的错误。这是因为默认情况下 Windows 标头包含旧的 winsock 版本。它包含许多与新的 winsock2 标头冲突的内容。但是通过定义该宏,旧的 winsock 标头被排除在外。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-04-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-03-21
      • 1970-01-01
      相关资源
      最近更新 更多