windows 管道故障

Out of order windows pipes

目前正在使用管道在进程之间进行通信,一个使用 C++,另一个使用 C# .NET 应用程序。我的 .NET 应用程序正在通过管道向我的 C++ 应用程序发送用户输入的长 lua 脚本。但是发送时,我的脚本全乱了。脚本块位于不同的位置。这很奇怪,因为我通过 1 个 ReadFile 调用读取了整个脚本。

我的 C# 端:

private void button1_Click(object sender, EventArgs e)
{
    if (!connected)
        return;
    using (var pipe = new NamedPipeClientStream(".", "TestPipe", PipeDirection.Out))
    using (var stream = new StreamWriter(pipe)) 
    { 
        pipe.Connect();
        stream.Write(TextBox.Text);
        pipe.Flush();
    }
}

我不会给出我从管道读取的整个 C++ 代码,但这是我定义管道的代码:

HANDLE Pipe = CreateNamedPipe("\\.\pipe\TestPipe",
PIPE_ACCESS_DUPLEX,
PIPE_TYPE_MESSAGE |PIPE_READMODE_MESSAGE | PIPE_WAIT,
PIPE_UNLIMITED_INSTANCES,
999999,
999999,
NMPWAIT_USE_DEFAULT_WAIT,
NULL);

我是否遗漏了一些明显的东西导致写入我的管道变得半损坏?

非常感谢任何帮助!

PAGE_READMODE_BYTE 解决了我的问题。