0

こんにちは、私は Java と C# の経験があり、最近は Linux 環境で C/C++ のモジュールを作成しました。私はWindowsでC ++で簡単なUDPサーバーを作成することにしましたが、これは私も初めてですが、コーディングに関しては完全な初心者ではありません。私はいくつかの例を見てきましたが、すべてこの1行から離れて機能しているようです:

SOCKET socket = socket(AF_INET, SOCK_DGRAM, 0);

これを Netbeans でコンパイルすると、次のエラー メッセージが表示されます。

classUDPServer.cpp: In constructor 'UDPServer::UDPServer()':
classUDPServer.cpp:35: error: '((UDPServer*)this)->UDPServer::socket' cannot be used as a function
    make[2]: *** [build/Debug/MinGW-Windows/classUDPServer.o] Error 1
    make[1]: *** [.build-conf] Error 2
    make: *** [.build-impl] Error 2

winsock2.h と iostream の両方が含まれています。

誰でもこのエラーで私を助けることができますか?

前もって感謝します!

4

1 に答える 1

5

関数と同じ方法で変数に名前を付けないでください。

SOCKET my_socket = socket(AF_INET, SOCK_DGRAM, 0);

さらに、@chris が指摘するように、スコープ解決演算子 (::) を使用して、関数socketがグローバル名前空間で検索されるようにすることができます。

SOCKET socket = ::socket(AF_INET, SOCK_DGRAM, 0);
于 2012-05-04T18:39:31.827 に答える