首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何打印到Win32应用程序中的调试输出窗口?

如何打印到Win32应用程序中的调试输出窗口?
EN

Stack Overflow用户
提问于 2009-08-26 09:45:13
回答 7查看 228K关注 0票数 106

我有一个已经加载到Visual Studio2005中的win32项目。我希望能够将内容打印到Visual Studio的输出窗口中,但我终生不能解决如何打印的问题。我尝试过'printf‘和'cout <<’,但我的消息仍然顽固地不打印。

是否有某种特殊的方法可以打印到Visual Studio输出窗口?

EN

回答 7

Stack Overflow用户

回答已采纳

发布于 2009-08-26 09:50:05

您可以使用OutputDebugStringOutputDebugString是一个宏,根据您的构建选项,它可以映射到OutputDebugStringA(char const*)OutputDebugStringW(wchar_t const*)。在后一种情况下,您必须为函数提供一个宽字符串。要创建宽字符文字,可以使用L前缀:

代码语言:javascript
复制
OutputDebugStringW(L"My output string.");

通常,您将宏版本与_T宏一起使用,如下所示:

代码语言:javascript
复制
OutputDebugString(_T("My output string."));

如果您的项目配置为使用UNICODE构建,它将扩展为:

代码语言:javascript
复制
OutputDebugStringW(L"My output string.");

如果不是为UNICODE构建,它将扩展为:

代码语言:javascript
复制
OutputDebugStringA("My output string.");
票数 144
EN

Stack Overflow用户

发布于 2009-08-26 09:52:54

要打印到real控制台,需要使用链接器标志/SUBSYSTEM:CONSOLE使其可见。额外的控制台窗口很烦人,但出于调试目的,它是非常有价值的。

当在调试器中运行时,OutputDebugString将打印到调试器输出。

票数 13
EN

Stack Overflow用户

发布于 2015-11-10 05:16:19

如果要打印十进制变量:

代码语言:javascript
复制
wchar_t text_buffer[20] = { 0 }; //temporary buffer
swprintf(text_buffer, _countof(text_buffer), L"%d", your.variable); // convert
OutputDebugString(text_buffer); // print
票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1333527

复制
相关文章

相似问题

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