1

私はまだネットワーキングで何かをしようとしていて、Beej のチュートリアルを使用する代わりに、MSDN.com に目を向けました。「Ws32_32.lib」をライブラリとして含める必要があると書かれています。このライブラリが見つかりません。VS 2010 SDK にあると思います。SDK を DL しましたが、professional または Ultimate などでしか動作しません。ここで自分の質問に答えたばかりかもしれませんが、VS Express で Windows ソケットを実際に使用する方法はありますか? 私はプロまたは究極のコストが法外な金額であることを理解しています (それらはビジネス向けに作成されているため、私は単なる初心者/愛好家です)。VS Express で Windows ソケットを使用する方法はありますか?

多分私はコードブロックまたは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 ソケット 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 は、Professional、Ultimate などの Visual Studio のバージョンとは直接関係ありません。コマンド ラインや VS2010 のエクスプレス エディションからでも SDK を操作できるはずです。SDK は、Visual Studio とは別にインストールできます。Visual Studio が SDK lib のパスを見つけられない場合は、設定を確認する必要があります。構成のプロジェクト設定の VS2010 では、VC++ ディレクトリのオプションがあります。右側に、SDK lib が指定されているかどうかを確認する「ライブラリ ディレクトリ」が表示されます。$(WindowsSdkDir)lib のマクロを確認します。

于 2012-08-15T05:27:02.770 に答える