我有一个Windows窗体应用程序,需要从该应用程序写入“输出”窗口。OutputDebugString("text");不工作-没有输出。我也尝试了一些其他的,但我没有得到任何工作。有没有可以像下面这样直接调用的函数?
DebugWriteLine("text");发布于 2012-02-17 18:23:59
如果OutputDebugString("text");不能工作,那么尝试以下方法(非常感谢Lol4t0 ):
发布于 2012-02-17 03:30:55
OutputDebugString应该可以很好地工作。问题(注释证实了这一点)很可能是因为您使用的是仅托管调试。如果启用混合模式(或仅本机)调试,您将获得本机调试输出。
如果希望将输出发送到托管调试器,请检查System::Diagnostics命名空间中的Debug和Trace类。
然后是System::Diagnostics::Debugger::Log,它克服了一些障碍,既能与本机调试器兼容,又能与托管调试器兼容(由于不同,它的行为也很奇怪)。我相信当附加本机调试器时,它实际上会调用OutputDebugString,否则会使用System::Diagnostics::Debug。
发布于 2012-02-16 01:07:57
这在Visual Studio中应该可以工作。
OutputDebugString("text");
下面是它的文档:http://msdn.microsoft.com/en-us/library/windows/desktop/aa363362(v=vs.85).aspx
如果它对你不起作用,我建议阅读MSDN页面上的评论,也许你的问题类似于那里列出的问题之一,例如:
在Visual Studio2008中,此函数的输出将转到“即时窗口”,而不是“输出”窗口。“即时”窗口默认情况下是关闭的,因此输出似乎丢失了。
此外,如果您发现"Winbase.h (include Windows.h)“令人困惑,则c++本机应用程序的正确include指令为
#包含
我知道你使用的是2010年,而不是2008年,但它可能仍然适用。
https://stackoverflow.com/questions/9297772
复制相似问题