C++ windows sdk和wsa启动

C++ windows sdk和wsa启动,c++,winsock,startup,winsock2,C++,Winsock,Startup,Winsock2,我是网络编程新手,我正在尝试一个关于网络编程的教程。这是我试过的程序 #include<winsock2.h> #include<ws2tcpip.h> #include<iphlpapi.h> #include <iostream> using namespace std; int main() { WSADATA wsaData; int iResult; //initialize winsock iRe

我是网络编程新手,我正在尝试一个关于网络编程的教程。这是我试过的程序

#include<winsock2.h>
#include<ws2tcpip.h>
#include<iphlpapi.h>
#include <iostream>


using namespace std;

int main()
{
    WSADATA wsaData;
    int iResult;
    //initialize  winsock
    iResult = WSAStartup(MAKEWORD(2,2), &wsaData);
    if(iResult!=0)
    {
        cout << "Startup Failed:"<<iResult<< endl;
    }

    return 1;
}

同样,这是我第一次做网络
编程
,我不知道为什么会出现这个错误。我想我应该安装windows sdk。有人告诉我是否应该以及应该安装什么。

正如Alex Farber提到的那样,您必须链接到Ws2_32.lib,以便链接器找到WSAStartup的实际代码。他知道(从winsock2头)它是如何声明的,但不知道在关联的库文件中找到的实际实现,它可以是静态(.lib)或动态(windows上的DLL)

在问这类问题之前,你应该试着自己用谷歌搜索错误,你会发现很多人都有同样的问题

一个更一般的建议:当你遇到此类问题时,如果第一次研究“完全”相同的错误消息不起作用(高度怀疑,但可能发生),尝试研究一个更一般的错误“未定义的引用”,你将很容易满足你的求知欲(:D)

如果您想快速了解编译/链接,请参阅。希望这能回答这个问题,并给你一些关于如何搜索帮助的提示^^


祝你度过愉快的一天并愉快地编码:)

你用什么来编译它?如目前所写,您的问题没有提供足够的元素来理解您的问题所在。请将Ws2_32.lib添加到链接器设置中。@SergeBallesta g++!C::B的默认编译器
D:\CodeBlocks\MinGW\bin\Network\main.cpp|14|undefined reference to `WSAStartup@8'|