none
Ошибка компоновщика LNK2019 в design time. RRS feed

  • Вопрос

  • В консольном приложении C++, в заголовочном файле SocketOnDuty.h делаю:

    #ifndef SocketOnDuty_H
    #define SocketOnDuty_H
    #endif

    В следующей строке того же файла пишу: include<winsock2.h>

    Затем, в том же заголовке, в описании класса SoketOnDuty, в секции public делаю предварительное описание конструктора этого класса:

    SocketOnDuty(int);

    В следующей строке этой же секции public обявляю виртуальный деструктор:

    virtual ~SocketOnDuty(){ closesocket(socketId); }

    socketId объявлен в секции protected класса SocketOnDuty следующим образом:

    int socketId;

    В файле stdafx.h включаю этот заголовок:

    #include "SocketOnDuty.h"

    В файле SocketOnDuty.cpp делаю:

    #include "stdafx.h"
    
    SocketOnDuty::SocketOnDuty(int p_Number)
    {
        	
    }

    И компоновщик (редактор связей) сразу же выдаёт ошибку:

    error LNK2019 Ссылка на неразрешённый внешний символ __imp__closesocket@4 в функции "public: virtual __thiscall SocketOnDuty::~SocketOnDuty(void)" ??1SocketOnDuty@@UAE@XZ)

    Когда определение конструктора в файле SocketOnDuty.cpp закомментировано, то эта ошибка исчезает. Как убрать её не комментируя определения конструктора в SocketOnDuty.cpp ?


Ответы

  • В свойствах проекта "Компоновщик - Ввод - Дополнительные зависимости" добавьте библиотеку Windows Sockets Ws2_32.lib

    Если сообщение помогло Вам, пожалуйста, не забудьте отметить его как ответ данной темы. Удачи в программировании!

    • Помечено в качестве ответа Purple_Apple 4 июня 2014 г. 13:59
    4 июня 2014 г. 12:07

Все ответы

  • В свойствах проекта "Компоновщик - Ввод - Дополнительные зависимости" добавьте библиотеку Windows Sockets Ws2_32.lib

    Если сообщение помогло Вам, пожалуйста, не забудьте отметить его как ответ данной темы. Удачи в программировании!

    • Помечено в качестве ответа Purple_Apple 4 июня 2014 г. 13:59
    4 июня 2014 г. 12:07
  • Вроде получилось. Ещё хочу уточнить - у меня Visual Studio 2013 и библиотека Ws2_32.lib хорошо подходит для неё или есть какая ещё более новая библиотека Windows Sockets ?
    4 июня 2014 г. 12:56
  • Эта библиотека (lib-файл) идет в комплекте с VS (вернее с Windows SDK, который ставится вместе с VS). Новее нет :)

    Если сообщение помогло Вам, пожалуйста, не забудьте отметить его как ответ данной темы. Удачи в программировании!

    4 июня 2014 г. 12:59
  • Собственно, этот файл - всего лишь список функций. Реализация Windows Sockets 2 (DLL) входит в состав любой современной Windows.

    Если сообщение помогло Вам, пожалуйста, не забудьте отметить его как ответ данной темы. Удачи в программировании!

    4 июня 2014 г. 13:01
  • Спасибо.
    4 июня 2014 г. 13:59