我有一个游戏的API,它调用C++ dll中的方法,您可以通过修改DLL并调用某些方法来编写游戏的机器人。这很好,除非我不是C++的忠实粉丝,所以我决定使用命名管道,这样我就可以将管道中的游戏事件发送到客户端程序,并发回命令 - 然后C++端只是一个简单的框架用于在命名管道上发送监听。进程间通信
我对事物的C#侧的一些方法是这样的:
private string Read()
{
byte[] buffer = new byte[4096];
int bytesRead = pipeStream.Read(buffer, 0, (int)4096);
ASCIIEncoding encoder = new ASCIIEncoding();
return encoder.GetString(buffer, 0, bytesRead);
}
private void Write(string message)
{
ASCIIEncoding encoder = new ASCIIEncoding();
byte[] sendBuffer = encoder.GetBytes(message);
pipeStream.Write(sendBuffer, 0, sendBuffer.Length);
pipeStream.Flush();
}
什么是对事物的C++方面的等效方法?
谢谢,我明白,在我的例子中,ReadFile和WriteFile等同于pipestrea.Write/Read。但是,我很害怕如何使用它们。 例如,所有参数的类型是什么,如何从缓冲区中将字节缓冲区转换为字符串,反之亦然? – Martin 2010-01-14 10:54:53
我编辑了我的答案,以回答评论中的其他问题。 – ChrisW 2010-01-14 11:31:27