title: using MAKEWORD function creates error E0109- expression preceding parentheses of apparent call must have (pointer-to-) function type
body: <p>I'm writing a project using cpp, sockets, json and winsock2 to create a connection between server and client, I'm using the function WSAStartup from winsock2.h to start a connection. I copied the way it's used from codes from the internet and it worked for a while, until suddenly the MAKEWORD function created an error.</p>
  
  <p>Here's the function I used MAKEWORD in it:
  (Communicator, RequestHandelerFactory and m_handlerFactory are classes I created, ignore that)</p>
  
  <pre class="lang-cpp prettyprint-override"><code>Communicator::Communicator(RequestHandelerFactory* RHF) : m_handlerFactory(RHF)
  {
      WSADATA wsa_data = {};
      if (WSAStartup(MAKEWORD(2, 2), &amp;wsa_data) != 0)
      {
          throw std::exception("wsa startup failed");
      }
      std::cout &lt;&lt; "Starting..." &lt;&lt; std::endl;
      _serverSocket = ::socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
      if (_serverSocket == INVALID_SOCKET)
      {
          throw std::exception(__FUNCTION__ " - socket");
      }
  }
  </code></pre>
  
  <p>The includes and defines I used:</p>
  
  <pre class="lang-cpp prettyprint-override"><code>#pragma warning(disable : 4996)
  #define WIN32_LEAN_AND_MEAN
  
  #include &lt;Windows.h&gt;
  #include &lt;WinSock2.h&gt;
  #include &lt;WS2tcpip.h&gt;
  #include &lt;stdio.h&gt;
  #include &lt;sstream&gt;
  #include &lt;bitset&gt;
  #include &lt;exception&gt;
  #include &lt;minwindef.h&gt;
  #include &lt;windef.h&gt;
  #include &lt;ctime&gt;
  //some more includes from code I wrote
  
  #pragma comment (lib, "ws2_32.lib")
  
  </code></pre>
  
  <p>The error is appearing in MAKEWORD function, and no matter what I do, it's still giving the same error.</p>
  
  <pre><code>E0109 expression preceding parentheses of apparent call must have (pointer-to-) function type
  </code></pre>
  
  <p>I'm using Visual Studio 2017, if that changes anything.
  I tried solving that in many ways, nothing seems to work.</p>