首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用C++-CLI将文本写入Visual Studio 2010输出窗口

使用C++-CLI将文本写入Visual Studio 2010输出窗口
EN

Stack Overflow用户
提问于 2012-02-16 01:03:14
回答 4查看 8.3K关注 0票数 1

我有一个Windows窗体应用程序,需要从该应用程序写入“输出”窗口。OutputDebugString("text");不工作-没有输出。我也尝试了一些其他的,但我没有得到任何工作。有没有可以像下面这样直接调用的函数?

代码语言:javascript
复制
DebugWriteLine("text");
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-02-17 18:23:59

如果OutputDebugString("text");不能工作,那么尝试以下方法(非常感谢Lol4t0 ):

  1. 进入要调试的EXE的项目设置。
  2. 选择“调试”属性页。
  3. 为调试器类型选择“Mixed”。
票数 1
EN

Stack Overflow用户

发布于 2012-02-17 03:30:55

OutputDebugString应该可以很好地工作。问题(注释证实了这一点)很可能是因为您使用的是仅托管调试。如果启用混合模式(或仅本机)调试,您将获得本机调试输出。

如果希望将输出发送到托管调试器,请检查System::Diagnostics命名空间中的DebugTrace类。

然后是System::Diagnostics::Debugger::Log,它克服了一些障碍,既能与本机调试器兼容,又能与托管调试器兼容(由于不同,它的行为也很奇怪)。我相信当附加本机调试器时,它实际上会调用OutputDebugString,否则会使用System::Diagnostics::Debug

票数 1
EN

Stack Overflow用户

发布于 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年,但它可能仍然适用。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9297772

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档