OutputDebugString错误

Yak*_*kov 0 c++ winapi visual-studio-2010 outputdebugstring

我用:

OutputDebugString(L"My error");
Run Code Online (Sandbox Code Playgroud)

在Visual Studio 2010中,但不是显示"我的错误",而是在窗口中只显示"错误".

在此输入图像描述

我该如何解决这个问题?

Fré*_*idi 5

由于您显式传递了UNICODE字符串,我建议您也明确调用OutputDebugStringW().

否则,如果UNICODE未在编译单元中定义预处理程序符号,则函数(OutputDebugStringA())的ANSI版本最终将使用UNICODE字符串进行调用(它不支持),并且应该导致编译错误.

编辑:您不能使用OutputDebugString()在应用程序的状态栏中写入字符串.OutputDebugString()只发送您传递给调试器的字符串.

您必须使用适当的API将文本写入状态栏.在你的情况下,wxStatusBar :: SetStatusText()应该可以解决问题.

  • 如果将Unicode字符串传递给期望ANSI字符串的函数,则*应该*出现编译器错误. (4认同)
  • @FrédéricHamidi我在状态栏中显示它.在OutputDebugStringW运行之前,它在那里写好.运行后它变为ERROR,而不是"我的错误" (2认同)