Related questionМаршал C# строка C++ TCHAR через StreamWriter
В C++, я требую строку TCHAR (LPTSTR). C# StreamWriters могут выводить ASCII, Unicode, UTF32 и т. Д. ... Не строки TCHAR.
Я не вызываю функцию в C++, я отправляю строковое сообщение по именованному каналу.
C#:
using (NamedPipeClientStream pipeClient = new NamedPipeClientStream(".", "mynamedpipe", PipeDirection.InOut))
using (StreamWriter sw = new StreamWriter(pipeClient, Encoding.UTF8))
using (StreamReader sr = new StreamReader(pipeClient, Encoding.Unicode))
{
pipeClient.Connect();
pipeClient.ReadMode = PipeTransmissionMode.Message;
sw.Write("Howdy from Kansas");
sw.Flush();
var b = sr.ReadLine();
Console.Write(b);
}
C++ ожидает TCHAR. Предложения?
Помните, что 'TCHAR' на самом деле не является определенным типом. Это возможность типа, после того, как программист решает. См. [Tchar tag-wiki] (https://stackoverflow.com/tags/tchar/info). – Deduplicator
Действительно ли вы по-прежнему кодируете Windows 98? Нет другой причины использовать 'TCHAR'? –
Нет, извините, мой опыт работы с Windows C/C++ в лучшем случае пятнистый. По-видимому, это wchar_t. Я сбивал с толку таких, как BSTR и com interop. Я могу ответить на этот вопрос еще несколькими пробными ошибками. –