【发布时间】:2009-07-24 01:00:26
【问题描述】:
我正在尝试在托管和非托管进程之间进行一些 IPC。我已经选择了命名管道。
我正在使用NamedPipeServerStream 在托管代码中启动一个线程:
using (NamedPipeServerStream stream = new NamedPipeServerStream("MyPipe", PipeDirection.In))
{
while (true)
{
stream.WaitForConnection();
stream.Read(buffer, 0, size);
//Handle buffer values
}
}
在非托管方面我使用CallNamedPipe:
CallNamedPipe(TEXT("\\\\.\\pipe\\MyPipe"), NULL, 0, pData, dataSize, NULL, NMPWAIT_WAIT_FOREVER);
但是,CallNamedPipe 失败,GetLastError 为 5(拒绝访问)。知道为什么吗?
【问题讨论】: