我正在做一个项目,其中我同时使用 VC++ 和 C#。VC++ 用于硬件接口(别无他法,我必须只使用 VC++)和我使用 C# 的应用程序端(micro soft Visual Studio 2008)。
为了让两个程序相互通信,我使用命名管道(这也是必须的)。
我能够在 C# 和 VC++ 之间进行通信,但不能在 VC++ 与 C# 之间进行通信。
我已经给出了我在 C# 中使用的代码。
using (NamedPipeServerStream pipeStream = new NamedPipeServerStream("mytestpipe"))
{
pipeStream.WaitForConnection();
Console.WriteLine("[Server] Pipe connection established");
using (StreamReader sr = new StreamReader(pipeStream))
{
while ((temp = sr.ReadLine()) != null)
{
MessageBox.Show(temp));
}
}
}
这里的问题是sr.ReadLine()
. 根本没有终止。它一旦找到 null 就应该停止,但是 VC++ 给出的 null 值在 C# 中不会被视为 NULL。
现在我该怎么办?