Почему я получаю ошибки компоновщика для ws2_32.dll в моей программе C? - PullRequest
6 голосов
/ 07 марта 2011

Я пишу свою программу в Visual Studio 2010. Я не могу связать файл с именем ws2_32.dll с моим проектом.

Может кто-нибудь сказать мне, как я могу это сделать?

Ответы [ 3 ]

8 голосов
/ 07 марта 2011

Обычно вы ссылаетесь не на ws2_32.dll напрямую , а на WS2_32.Lib, которую вы можете найти в Windows SDK. Итак, в вашем коде вы пишете

#include <winsock2.h>

и в настройках компоновщика вы добавляете WS2_32.Lib, и все готово.

Windows SDK находится здесь:

http://msdn.microsoft.com/en-us/windows/bb980924.aspx

6 голосов
/ 07 марта 2011

Первым делом является импорт файла заголовка, который определяет функции, экспортируемые ws2_32.dll.Вы делаете это, добавляя следующий оператор в начало любого исходного файла, в котором вы хотите вызвать эти функции:

#include <winsock2.h>

Затем вы должны указать компоновщику, где он может найти библиотеку импорта для этогоDLL.Есть два способа сделать это в Visual Studio, но самый простой способ - добавить следующую строку в ваш исходный код:

#pragma comment(lib, "ws2_32.lib")

Вы также можете добавить его в качестве зависимости к свойству компоновщика «Дополнительные зависимости».(найдите это в разделе «Свойства проекта» -> «Свойства конфигурации» -> «Связыватель» -> «Ввод»).

В MSDN также есть руководство по началу работы , которое проведет вас через при создании основного приложения Winsock.Убедитесь, что вы прочитали его, прежде чем продолжить.

0 голосов
/ 07 марта 2011

Вам необходимо загрузить файл, используя LoadLibrary , если у вас нет файла lib.

...