1

thread追加するときに、モジュールを含めることに問題があります。

#include <thread>

bind 関数を呼び出すと、エラーが発生します。

エラー 3 エラー C2440: '=' : 'std::_Bind<_Forced,_Ret,_Fun,_V0_t,_V1_t,_V2_t,_V3_t,_V4_t,_V5_t,>' から 'int' c:\users\ohadpeled\documents に変換できません\visual studio 2012\projects\loginserver\loginserver\server.cpp 87 1 LoginServer 4 IntelliSense: "std::_Bind" から "int" への適切な変換関数が存在しませんc:\Users\OhadPeled\Documents\Visual Studio 2012\Projects \LoginServer\LoginServer\Server.cpp 87 20 ログインサーバー

呼び出しが正常に機能するスレッドモジュールを含めないと、なぜこのエラーが発生するのかわかりません。どなたか原因を教えていただけると幸いです。

以下は、サーバー クラスの一部です。

            /* Set TCP listening socket */
            ListenResult = bind(ListenSocket, result->ai_addr, (int)result->ai_addrlen); // Error in this line
            if (ListenResult != SOCKET_ERROR) 
            {
                freeaddrinfo(result);

                ListenResult = listen(ListenSocket, SOMAXCONN);
                if (ListenResult != SOCKET_ERROR) 
                {
                    /* Accepting clients */
                    while(true)
                    {
                        ClientSocket = new SOCKET();
                        ADDR = new SOCKADDR_IN();
                        ADDRSize = sizeof(*ADDR);
                        *ClientSocket = accept(ListenSocket, (struct sockaddr*)ADDR, &ADDRSize);
                        if (*ClientSocket != INVALID_SOCKET) 
                        {
                            /* I want to thread the handler function over here! */
                            Handler(ClientSocket, ADDR);
                        }
                    }
                }
            }

私はwin7を使用しており、winsockでソケットを設定しています。

4

1 に答える 1