2013-06-12 36 views
1

昨天我試着在C++中創建一個套接字服務器,但是在編譯時出現錯誤。 的錯誤:C++ WinSock2錯誤

錯誤6錯誤LNK2019:解析外部符號_ 小鬼 _socket @函數引用12 「市民:靜態無符號長__cdecl信封:: GetSocket(無效)」(?GetSocket @信封@@ SAKXZ) C:\ Users \用戶JoshuaTha \文檔\ Visual Studio 2010的\項目\ 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的\項目\ HabboV5 \ HabboV5 \ Network.obj HabboV5

錯誤3錯誤LNK2019:解析外部符號_ 小鬼 _bind @ 12函數引用 「市民:無效__thiscall網::開始(無效)」 (?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:\用戶\ JoshuaTha \文檔\ Visual Studio 2010的\項目\ HabboV5 \調試\ 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); 
    } 
}; 
+1

您沒有包含定義套接字內容的DLL的implib。看看MSDN什麼庫豪與winsock2 –

回答

2

在連接選項(在該項目上單擊右鍵,鏈接,輸入),你需要添加wsock32.libws2_32.lib輸入文件的列表。

+0

沒關係,它的工作原理,謝謝。 –