[英]getting error code 998 Invalid access to memory location when trying to read from named pipe
我使用 WCF 和 C# 创建了一个命名管道,并创建了一个连接到它的客户端,以便我知道它可以正常工作。 现在我正在尝试创建一个 C++ 客户端。 到目前为止,我已经能够获得管道的名称,连接到它,并向其中写入一些数据。 当我尝试从中读取时,我收到error code 998 Invalid access to memory location
。 这是我正在使用的代码:
HANDLE hPipe = CreateFile(pipeName.c_str(), GENERIC_WRITE | GENERIC_READ, 2, NULL, OPEN_EXISTING, NULL, NULL);
BOOL bWrite = WriteFile(hPipe, &message, size, &bytesWritten, NULL);
LPVOID buffer = 0;
DWORD bytesRead;
BOOL bRead = ReadFile(hPipe, buffer, 10, &bytesRead, NULL);
我不确定我做错了什么。
没有为buffer
分配内存,它当前是一个空指针,并且代码请求将 10 个字节的数据读入一个不存在的数组中。 从ReadFile()
:
lpBuffer [输出]
指向接收从文件或设备读取的数据的缓冲区的指针。
纠正:
char buffer[10];
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.