1

我仍在尝试使用网络做一些事情,而不是使用 Beej 的教程,我转向 MSDN.com。它说我需要将“Ws32_32.lib”作为库包含在内。我找不到这个库,我相信它与 VS 2010 SDK 一起使用。我 DLed SDK,它只适用于专业或终极之类的东西。也许我刚刚在这里回答了我自己的问题,但是,有没有办法在 VS express 中实际使用 Windows 套接字?我了解专业或最终成本过高(因为它们是为企业制作的,我只是一个新手/爱好者)。有没有办法将 Windows 套接字与 VS express 一起使用?

也许我应该转向代码块或 QT ......

4

2 回答 2

1

您看过 MSDN Winsock 入门指南吗?提供的示例代码适用于我使用普通的 Visual C++ 2010 Express。该片段编译干净,并#pragma告诉链接器需要哪个库。

#include <stdio.h>
#include <winsock2.h>
#include <ws2tcpip.h>

// link with Ws2_32.lib
#pragma comment(lib, "Ws2_32.lib")

int main()
{
    WSADATA wsaData;

    // Initialize Winsock
    int result = WSAStartup(MAKEWORD(2, 2), &wsaData);
    if (result != 0) {
        printf("WSAStartup failed: %d\n", result);
        return 1;
    }

    // Your code here

    WSACleanup();
    return 0;
}
于 2012-08-15T05:08:58.277 回答
0

winsock库是Ws2_32.LIB,是windows socket dll链接库。您将在 Microsoft SDK lib 文件夹中找到它。就我而言,它位于 C:\Program Files\Microsoft SDKs\Windows\v7.0A\Lib。Visual Studio 已经应该知道这条路径。如果您简单地在链接器选项中指定此库(链接器 -> 输入 -> 附加库),那么您实际上是在隐式链接系统 winsock dll Ws2_32.dll。你也可以使用#pragma comment(lib, "ws2_32.lib")

SDK 与专业版、终极版等 Visual Studio 版本没有直接关系。即使从命令行或 VS2010 的 Express 版本,您也应该能够使用 SDK。SDk 可以独立于 Visual Studio 安装。如果您的 Visual Studio 无法找到 SDK lib 的路径,那么您需要检查设置。在配置中的项目设置中使用 VS2010 时,有一个用于 VC++ 目录的选项。在右侧,您将看到“库目录”检查是否在此处指定了 SDK 库。检查 $(WindowsSdkDir)lib 的宏。

于 2012-08-15T05:27:02.770 回答