私は VC++ と C# の両方を使用しているプロジェクトを行っています。VC++ はハードウェア インターフェイス用であり (他の方法はありません。VC++ のみを使用する必要があります)、アプリケーション側では C# (マイクロ ソフト ビジュアル スタジオ 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 と見なされません。
ではどうすればいいのでしょうか?