首页 文章

OutputDebugString()在Windows 7x64上不起作用

提问于
浏览
6

我的程序适用于windows xp . 我试图添加一些更多的功能,并使用 OutputDebugString() 来显示一些调试信息 . 在XP上完美运行 . 现在我想在Windows 7x64上使用相同的程序 . 我在 DebugView 看不到任何输出 .

F1! F1! F1!

3 回答

  • 4

    3个小建议:

    • 确保您实际捕获事件(顶部菜单 - >捕获 - >捕获win32已标记)

    • 如果程序运行的完整性较低(在运行时它会发出安全警告),则还需要以低完整性运行调试视图 . 为此,您需要在运行之前更改dbgview.exe的完整性级别 .

    • 如果您正在使用visual studio并使用调试器运行(按下F5),则调试输出实际上由visual studio捕获(在输出窗口中) . 尝试使用ctrl f5运行程序 .

  • 4

    很抱歉恢复了一个旧问题,但我们花了几天时间在互联网上搜索这个问题并最终结束了连接通话 . 我在这里张贴以帮助处于同样情况的其他人 . 我们的具体问题是在调试x64混合模式应用程序时,在调试输出窗口中获取OutputDebugString,MFC TRACE等的输出 .

    根据微软的说法,显然对于调试x64混合模式应用程序,调试器类型“auto”(在Debugging-> Debugger Type属性页面中设置)默认为managed而不是mixed . 在调试64位版本时,需要将托管和本机调试输出显式设置为“混合” .

  • 12

    这可能有效或无效的原因有很多 . 我不小心禁用了这个 - 这里有你需要检查的所有东西:

    • 调试输出文本是否从 Output 窗格重定向到 Immediate 窗格,因此您没有看到它?转此 off:

    • Debug

    • Options and Settings

    • [ ] Redirect all Output Windows text to the Immediate Window

    • Output 窗格是否可见?

    • Debug

    • Windows

    • Output

    • Output 窗格中你有 Program Output enabled?

    • Debug

    • Windows

    • Output

    • 右键单击窗格内的任意位置

    • [x] Program Output

    • 你有没有选择 Debugging Type

    • Solution Explorer (“查看”>“解决方案资源管理器”)窗格中

    • 右键单击您的项目

    • Properties

    • Debugging

    • Debugging Type :从 Auto 更改为 NativeMixed

    • 调试器是否在程序启动之前尝试连接?转 Attach off:

    • Solution Explorer (“查看”>“解决方案资源管理器”)窗格中

    • 右键单击您的项目,

    • Properties

    • Debugging

    • Attach :更改为 No

    • 您使用的是 OutputDebugStringW() 吗?请尝试使用 OutputDebugStringA() .

    • 最后,你是否在调试模式下启动程序? :-)嘿,你永远都不知道!

    • Debug

    • Start Debugging (F5)

    之前我还没有看到一个全面的列表,所以我必须验证的所有内容都已正确设置 .

相关问题