2

クライアントとサーバー(同じホスト内)間の通信用に名前付きパイプを作成する必要があります。コードは次のとおりです。

WCHAR wszPipeName[MAX_FILE_LENGTH];
swprintf_s(wszPipeName, MAX_FILE_LENGTH, L"\\\\.\\pipe\\TEST%d", uniqueID);
pipe = CreateNamedPipe(
           wszPipeName, // name of the pipe
           PIPE_ACCESS_DUPLEX,
       PIPE_TYPE_MESSAGE | PIPE_READMODE_MESSAGE | PIPE_NOWAIT,
       1,
           MAX_MSG_SIZE, 
           MAX_MSG_SIZE , //inbound buffer
           MAX_READ_DATA_TIMEOUT,
           NULL // use default security attributes
       );

ハンドラーが返すのは常にINVALID_HANDLE_VAULEであり、エラーはERROR_ACCESS_DENIEDです。

ここに何か問題がありますか?Windows7/8で実行されています。

ありがとう

4

2 に答える 2

-1

理由が見つかりました。セキュリティの制限によるものです。適切なセキュリティ記述子を提供すると、機能します。

于 2013-01-25T20:57:42.010 に答える