我有一個遊戲的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