Как указать, какую перегруженную функцию я хочу использовать - PullRequest
0 голосов
/ 09 октября 2018

Я пытаюсь создать UDP-клиент на компьютере под управлением Windows, используя C ++ (см. Код ниже).

Проблема в том, что проект, на котором я обременен, также содержит ссылки на библиотеку <functional>, которая переопределяетbind функция с парой шаблонных функций, и VS не знает, какую версию bind() я хочу использовать.

Как мне сообщить компилятору, что я хочу использовать версию Winsockbind() функция?

    SOCKET s = INVALID_SOCKET;

    if ((s = socket(AF_INET, SOCK_DGRAM, 0)) == INVALID_SOCKET)
    {
        WSACleanup();
        return;
    }

    sockaddr_in addr_recv;

    memset((char *)&addr_recv, 0, sizeof(addr_recv));
    addr_recv.sin_family = AF_INET;
    addr_recv.sin_port = htons(0);
    addr_recv.sin_addr.s_addr = htonl(INADDR_ANY);

    int server_addr_len = sizeof(addr_recv);

    // compiler doesn't know which bind I mean.
    int iResult = bind(s, (SOCKADDR *)&addr_recv, server_addr_len);

    if (iResult == SOCKET_ERROR)
    {
        closesocket(s);
        WSACleanup();
        return;
    }
...