首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用MAKEWORD函数会产生错误E0109- expression在外观调用的圆括号前必须有(指向-)函数类型

使用MAKEWORD函数会产生错误E0109- expression在外观调用的圆括号前必须有(指向-)函数类型
EN

Stack Overflow用户
提问于 2019-06-28 20:54:01
回答 1查看 364关注 0票数 1

我正在编写一个使用cpp、套接字、json和winsock2在服务器和客户端之间创建连接的项目,我正在使用winsock2.h中的函数WSAStartup来启动连接。我从互联网上的代码中复制了它的使用方式,它工作了一段时间,直到突然MAKEWORD函数产生了一个错误。

这是我在其中使用的函数:(Communicator,RequestHandelerFactory和m_handlerFactory是我创建的类,忽略它)

代码语言:javascript
复制
Communicator::Communicator(RequestHandelerFactory* RHF) : m_handlerFactory(RHF)
{
    WSADATA wsa_data = {};
    if (WSAStartup(MAKEWORD(2, 2), &wsa_data) != 0)
    {
        throw std::exception("wsa startup failed");
    }
    std::cout << "Starting..." << std::endl;
    _serverSocket = ::socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
    if (_serverSocket == INVALID_SOCKET)
    {
        throw std::exception(__FUNCTION__ " - socket");
    }
}

我使用的include和定义如下:

代码语言:javascript
复制
#pragma warning(disable : 4996)
#define WIN32_LEAN_AND_MEAN

#include <Windows.h>
#include <WinSock2.h>
#include <WS2tcpip.h>
#include <stdio.h>
#include <sstream>
#include <bitset>
#include <exception>
#include <minwindef.h>
#include <windef.h>
#include <ctime>
//some more includes from code I wrote

#pragma comment (lib, "ws2_32.lib")

错误出现在MAKEWORD函数中,无论我做什么,它仍然给出相同的错误。

代码语言:javascript
复制
E0109 expression preceding parentheses of apparent call must have (pointer-to-) function type

我使用的是Visual Studio 2017,如果有什么变化的话。我试着用很多方法来解决这个问题,似乎都不起作用。

EN

回答 1

Stack Overflow用户

发布于 2019-06-30 02:16:20

问题是在我的代码之前使用define。谢谢您:)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56807352

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档