首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >C++ WinSock2误差

C++ WinSock2误差
EN

Stack Overflow用户
提问于 2013-06-12 15:45:33
回答 1查看 3.6K关注 0票数 3

昨天,我尝试在C++中创建一个套接字服务器,但是编译时会出现错误。错误:

错误6错误LNK2019:函数"public:静态无符号长__cdecl Env::GetSocket(__cdecl)“中引用的未解析外部符号_imp_socket@12 (?GetSocket@Env@@SAKXZ) C:\Users\JoshuaTha\Documents\Visual 2010\Projects\HabboV5\HabboV5\Network.obj HabboV5

错误5错误LNK2019:函数"public: void __thiscall Network::Start(__thiscall)“中引用的未解析外部符号_imp_listen@8 (?Start@Network@@QAEXXZ) C:\Users\JoshuaTha\Documents\Visual 2010\Projects\HabboV5\HabboV5\Network.obj HabboV5

错误4错误LNK2019:函数"public: void __thiscall Network::Start(__thiscall)“中引用的未解析外部符号_imp_htons@4 (?Start@Network@@QAEXXZ) C:\Users\JoshuaTha\Documents\Visual 2010\Projects\HabboV5\HabboV5\Network.obj HabboV5

错误3错误LNK2019:函数"public: void __thiscall Network::Start(__thiscall)“中引用的未解析外部符号_imp_bind@12 (?Start@Network@@QAEXXZ) C:\Users\JoshuaTha\Documents\Visual 2010\Projects\HabboV5\HabboV5\Network.obj HabboV5

错误2错误LNK2001:未解决的外部符号"public:静态类网络* Env:: Network“(网络@Env@@2PAV0@A)C:\User\JoshuaTha\Documents\Visual 2010\Projects\ HabboV5 5\HabboV5 5\HabboV5.obj HabboV5

错误7错误LNK1120: 5个未解决的外部文件C:\User\JoshuaTha\Documents\Visual 2010\Projects\ HabboV5 5\Debug\HabboV5.exe HabboV5

我的主要.cpp课程:

代码语言:javascript
复制
// HabboV5.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"
#include <iostream>
#include "Env.h"

using namespace std;

int _tmain(int argc, _TCHAR* argv[])
{
cout.write("hi", 2);
cout << "Hello World!" << endl;

Env::Network = new Network();
Env::Network->Start();

while (1)
{
    char input[256];
    cin.getline(input, 256);
}
}

网络.h:

代码语言:javascript
复制
#pragma once
#include <WinSock2.h>

class Network
{
private:
    SOCKET socket;
public:
    Network(void);
    void Start();
};

Network.cpp:

代码语言:javascript
复制
#include "StdAfx.h"
#include "Network.h"
#include <WinSock2.h>
#include "Env.h"

Network::Network(void)
{
}

void Network::Start()
{
    this->socket = Env::GetSocket();

    SOCKADDR_IN sInformation;

    sInformation.sin_family = AF_INET;
    sInformation.sin_addr.s_addr = INADDR_ANY;
    sInformation.sin_port = htons(30000);

    bind(this->socket, (SOCKADDR*) (&sInformation), sizeof(sInformation));
    listen(this->socket, 10);
}

环境h:

代码语言:javascript
复制
#include "stdafx.h"
#include "Network.h"
#include <WinSock2.h>

class Env
{
public:
    static Network* Network;

    static DWORD GetSocket()
    {
        return socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
    }
};
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-06-12 16:04:42

在链接器选项(在项目右击、链接器、输入)中,您需要将wsock32.libws2_32.lib添加到输入文件列表中。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17069802

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档