为什么我的C程序中的ws2_32.dll会出现链接器错误?

时间:2011-03-07 13:32:53

标签: c visual-studio winapi linker-errors winsock2

我在Visual Studio 2010中编写程序。 我无法将名为ws2_32.dll的文件与我的项目链接。

谁能告诉我怎么做?

3 个答案:

答案 0 :(得分:8)

通常,您不要直接链接到ws2_32.dll ,而是链接到Windows SDK中可以找到的WS2_32.Lib。所以在你的代码中你写了

#include <winsock2.h>

和你的链接器设置一样,你添加了WS2_32.Lib,你就可以了。

Windows SDK在这里:

  

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

答案 1 :(得分:6)

第一项业务是导入定义ws2_32.dll导出的函数的头文件。您可以通过将以下语句添加到要在以下位置调用这些函数的任何源文件的顶部来执行此操作:

#include <winsock2.h>

然后,您必须告诉链接器它可以在哪里找到该DLL的导入库。在Visual Studio中有两种方法可以做到这一点,但最简单的方法是在源代码中添加以下行:

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

您还可以将其作为依赖项添加到链接器的“附加依赖项”属性(在项目属性 - >配置属性 - &gt;链接器 - &gt;输入下找到)。

MSDN还有一个getting started guide,可引导您完成creating a basic Winsock application。确保您在继续操作之前已阅读它。

答案 2 :(得分:0)

如果您没有lib文件,则需要使用LoadLibrary加载文件。