如何在unicode MFC环境下使用ascii跟踪?

如何在unicode MFC环境下使用ascii跟踪?,unicode,mfc,debugging,ascii,trace,Unicode,Mfc,Debugging,Ascii,Trace,我正在WindowsCE下开发一个MFC程序。默认情况下,它是unicode。我可以用TRACE打印这样的消息 TRACE(TEXT("Hey! we got a problem!\n")); 如果一切都是unicode,那么它就可以正常工作。但是,我有一些ascii字符串要打印。例如: // open the serial port m_Context = CreateFile(TEXT("COM1:"), ...); int rc = ReadFile(m_Context, buffer,

我正在WindowsCE下开发一个MFC程序。默认情况下,它是unicode。我可以用TRACE打印这样的消息

TRACE(TEXT("Hey! we got a problem!\n"));
如果一切都是unicode,那么它就可以正常工作。但是,我有一些ascii字符串要打印。例如:

// open the serial port
m_Context = CreateFile(TEXT("COM1:"), ...);
int rc = ReadFile(m_Context, buffer, 1, cBytes, NULL);
// Oops!! We got a problem, because we can't print a non-unicode string
TRACE(TEXT("Read data: %s\n"), buffer);
我从GPS模块通过com1读取字符串。它发送这样的文本“$GPSGGA,1,2,3,4”。它们都是用ASCII编码的。我想用TRACE打印出来,怎么办


谢谢。

只要检索到的文本确实是0–127范围内的ASCII,并且Unicode编码是UTF-8,它就应该可以工作。Unicode采用了较低的ASCII范围,使用相同的代码点。

只要检索到的文本是0–127范围内的真正ASCII,并且Unicode编码是UTF-8,它就应该工作。Unicode采用了较低的ASCII范围,使用相同的代码点。

使用
“%hs”
设置窄字符串参数的格式,前提是您不关心代码页。例如,有关格式说明符的说明,请参见。

使用
“%hs”
设置窄字符串参数的格式,前提是您不关心代码页。例如,有关格式说明符的说明,请参见。

在Windows中,“%S”格式说明符(大写“S”)将格式化与生成“相反”的字符串。在UNICODE版本中,它需要一个ANSI/MBCS字符串,而在非UNICODE版本中,它需要一个UNICODE参数

我不是100%确定这在CE上可以工作,但是以下在桌面上可以工作(对于UNICODE构建):

在Windows中,“%S”格式说明符(大写)将格式化与生成“相反”的字符串。在UNICODE版本中,它需要一个ANSI/MBCS字符串,而在非UNICODE版本中,它需要一个UNICODE参数

我不是100%确定这在CE上可以工作,但是以下在桌面上可以工作(对于UNICODE构建):

TRACE( TEXT("Unicode string: \"%s\", ASCII string: \"%S\""), L"unicode", "ascii");