我的程序在Windows XP上运行良好。我正在尝试添加一些功能,并使用OutputDebugString()
来显示一些调试信息,在XP上无缝运行。现在,当我想在Windows 7x64上使用相同的程序时,在DebugView
中看不到任何输出。
F1!
F1!
F1!
我的程序在Windows XP上运行良好。我正在尝试添加一些功能,并使用OutputDebugString()
来显示一些调试信息,在XP上无缝运行。现在,当我想在Windows 7x64上使用相同的程序时,在DebugView
中看不到任何输出。
F1!
F1!
F1!
抱歉,再次提出一个老问题,但我们花了几天时间在互联网上搜索答案,最终不得不记录连接调用。我在此发布帖子,以帮助任何处于同样情况的人。我们具体的问题是,在调试x64混合模式应用程序时,在调试输出窗口中获取来自OutputDebugString、MFC TRACE等的输出。
根据微软的说法,显然,为了调试x64混合模式应用程序,“auto”调试器类型(设置在“调试”->“调试器类型”属性页中)默认为托管而不是混合。这将需要明确设置为“Mixed”,才能在调试64位构建时看到托管和本机调试输出。
有许多原因可能会导致这个方法无法工作。我不小心禁用了它--以下是需要检查的所有事项,以使其正常运行:
是否将调试输出文本从“输出”窗格重定向到“立即”窗格,因此您看不到它?要关闭此功能:
调试
选项和设置
[ ] 将所有输出窗口文本重定向到“立即”窗口
是否显示“输出”窗格?
调试
窗口
输出
在“输出”窗格中,你是否启用了“程序输出”?
调试
窗口
输出
[x] 程序输出
你是否选择了正确的调试类型?
属性
调试
调试类型
: 从 自动
更改为 本机
或 混合
程序是否在启动之前尝试连接调试器?要关闭附加
功能:
属性
调试
附加
:更改为否
您是否在使用OutputDebugStringW()
?请尝试改用OutputDebugStringA()
。
最后,您是否以调试模式启动程序?:-) 嘿,你永远不知道!
调试
开始调试(F5)
我以前没有看到过全面的列表,因此上述所有内容都是我必须验证设置正确的事项。
三个小建议:
OutputDebugString
在 7 x64 上运作正常。DebugView
也能显示应用程序的输出。 - Roman R.