获取错误代码 998 尝试从命名管道读取时对内存位置的访问无效
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 [out]
指向接收从文件或设备读取的数据的缓冲区的指针。
要纠正:
char buffer[10];
相关文章:
- 你好。。。id_public变量不应该给出结果为 81 和 86 吗?为什么它为两个派生类占用不同的内存位置?
- 如何在不等待检索的情况下获取C++中的内存位置?
- 向量的内存位置不连续
- 如何根据C++在同一内存位置重新初始化 C# 中的对象(还是自动完成)?
- 常量引用的内存位置
- C++强制变量到一个固定的内存位置
- 为什么未初始化的内存位置的值给出 -842150451 的值?
- 为什么存储在内存位置的值会发生变化?
- 在特定内存位置构造 c++ 对象
- 如果不初始化结构中的向量,它会自动为空还是具有随机内存位置的值?
- 内存位置出现Microsoft C++异常:std::out_of_range
- 函数,返回变量c++占用的内存位置的大小
- 无法在 Opencv 中显示图像导致内存位置
- 从十六进制到双的转换始终导致内存位置的 std::out_of_range
- 错误 在测试.exe 0x76C9FD62时出现未经处理的异常:Microsoft C++异常:内存位置0x006FF8
- 错误:内存位置的 std::length_error
- C++不同内存位置中的默认数组值
- 为什么动态分配的两个变量的内存位置不是连续的?
- Boost.进程间内存位置
- 查找编译时构造类的内存位置