Вчера я попытался создать сервер сокетов на C++, но при компиляции я получаю ошибки. Ошибки:C++ WinSock2 Ошибки
Ошибка 6 Ошибка LNK2019: неразрешенный внешний символ _ имп _socket @ 12 ссылка в функции "общественности: статическая неподписанных долгое __cdecl Env :: GetSocket (аннулируются)" (? GetSocket @ ENV @@ SAKXZ) C: \ Users \ JoshuaTha \ Documents \ Visual Studio 2010 \ Projects \ HabboV5 \ HabboV5 \ Network.obj HabboV5
ошибка 5 ошибка LNK2019: неразрешенный внешний символ _ имп _listen @ 8 ссылается в функции «общественность: пустота __thiscall Network :: Start (void) "(? Start @ Network @@ QAEXXZ) C: \ Users \ JoshuaTha \ Documents \ Visual Studio 2010 \ Projects \ HabboV5 \ HabboV5 \ Network.obj HabboV5
Ошибка 4 ошибки LNK2019: неразрешенный внешний символ _ imp _htons @ 4 ссылка в функции «public: void __thiscall Network :: Start (void)» (? Start @ Network @@ QAEXXZ) C: \ Users \ JoshuaTha \ Documents \ Visual Studio 2010 \ Projects \ HabboV5 \ HabboV5 \ Network.obj HabboV5
ошибка 3 ошибка LNK2019: неразрешенный внешний символ _ имп _bind @ 12 ссылки в функции "общественности: аннулированию __thiscall Network :: Start (недействительными)" (? Start @ Network @@ QAEXXZ) C: \ Users \ JoshuaTha \ Documents \ Visual Studio 2010 \ Projects \ HabboV5 \ HabboV5 \ Network.obj HabboV5
Ошибка 2 ошибка LNK2001: неразрешенный внешний символ "public: static class Network * Env :: Network "(? Network @ Env @@ 2PAV0 @ A) C: \ Users \ JoshuaTha \ Documents \ Visual Studio 2010 \ Projects \ HabboV5 \ HabboV5 \ HabboV5.obj HabboV5
Ошибка 7 ошибка LNK1120: 5 нерешенных C внешних включений: \ Users \ JoshuaTha \ Documents \ Visual Studio 2010 \ Projects \ HabboV5 \ Debug \ HabboV5.exe HabboV5
Мой главный класс .cpp:
// 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);
}
}
Network.h:
#pragma once
#include <WinSock2.h>
class Network
{
private:
SOCKET socket;
public:
Network(void);
void Start();
};
Network.cpp:
#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);
}
Env.h:
#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);
}
};
Вы не указали имплицировать библиотеки DLL, определяющие материал сокета. Посмотрите msdn, что libs ho с winsock2 –