[英]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.