使用makeword函数创建错误e0109-表观呼叫的括号前表达式必须具有(指针到 - )函数类型
using MAKEWORD function creates error E0109- expression preceding parentheses of apparent call must have (pointer-to-) function type
我正在使用CPP,套接字,JSON和WINSOCK2编写一个项目来创建服务器和客户端之间的连接,我正在使用winsock2.h的函数WSASTARTUP来启动连接。我复制了从Internet代码中使用的方式,并且它持续了一段时间,直到突然sakeword函数创建了一个错误。
这是我在其中使用makeword的功能:(communicator,requestHandelerFactory和m_handlerFactory是我创建的类,忽略它(
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");
}
}
包括并定义了我使用的:
#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函数中出现,无论我做什么,它仍然给出相同的错误。
E0109 expression preceding parentheses of apparent call must have (pointer-to-) function type
我正在使用Visual Studio 2017,如果有任何更改。我尝试以许多方式解决该解决,似乎没有任何作用。
问题是在我的代码之前使用define
。谢谢:(
相关文章:
- 为什么在我的函数类型后使用引用运算符 (&) 允许我修改它返回的值?
- 来自 DLL 的函数调用 [表观调用的括号前面的表达式必须具有(指向-)函数类型]
- 是否有任何建议来统一函数类型限定符并简化可恶的函数类型?
- 关于 C++ 中的函数类型定义
- 用于检测函数类型是否为否的特征
- 函数类型参数的模板参数推导
- 标准对此指向成员函数类型模板参数有何说明?是我的代码有误,还是 MSVS 16.6 有问题?
- C++无效的函数类型转换
- STL 函数和函数类型与函数指针类型
- 如何将result_of与函数类型定义一起使用
- 将模板(没有规范)传递给 std::thread() 会出现错误:<未解析的重载函数类型>匹配错误
- C++ 编译错误:gnu_printf是无法识别的格式函数类型
- 专门用于"direct"函数类型(与函数指针类型相对)
- 将函数类型作为模板参数传递不会编译
- 通过参数传递 lambda(无函数类型模板)
- 如何在模板参数中分离函数类型返回类型和参数
- 为什么比较函数类型需要指定为模板参数?
- 带有限定符的函数类型定义用例
- 如何声明对函数类型的常量引用
- 非类型模板参数允许各种函数类型?