【发布时间】:2015-02-23 18:56:58
【问题描述】:
在 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。 -
您真的还在为 Windows 98 编写代码吗?没有其他理由使用
TCHAR? -
不,抱歉,我的 Windows C/C++ 体验充其量是参差不齐的。它显然是一个 wchar_t。我把它与 BSTR 和 com interop 之类的东西混淆了。我也许可以通过更多的尝试和错误来回答这个问题。
-
@Deduplicator,你是对的。你如何决定TCHAR in DEV_BROADCAST_DEVICEINTERFACE?