У меня есть API для игры, которая вызывает методы в dll C++, вы можете писать боты для игры, модифицируя DLL и вызывая определенные методы. Это прекрасно, если только я не большой поклонник C++, поэтому решил использовать именованные каналы, чтобы я мог отправлять игровые события по каналу в клиентскую программу и отправлять команды обратно - тогда C++ -это просто простая структура для отправки прослушивания по именованному каналу.Interprocess communication
У меня есть некоторые методы, как это на # стороне 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 в моем примере. Тем не менее, я в убытке точно, как их использовать. Например, каковы типы всех аргументов, как мне преобразовать из буфера байтов, который я предположительно получаю из метода ReadFile в строку и наоборот/наоборот? – Martin
Я отредактировал свой ответ, чтобы ответить на дополнительные вопросы в вашем комментарии. – ChrisW