1

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);

何が間違っているのかわかりません。

4

1 に答える 1

7

にメモリが割り当てられておらずbuffer、現在はヌル ポインタであり、コードは存在しない配列に 10 バイトのデータを読み込むように要求しています。からReadFile():

lpBuffer [アウト]

ファイルまたはデバイスから読み取ったデータを受け取るバッファーへのポインター。

修正するには:

char buffer[10];
于 2012-08-07T21:17:31.853 に答える