【发布时间】:2020-10-02 23:47:14
【问题描述】:
我正在 VS 2012 中处理 c++/CLI 应用程序分配。出于测试目的,我正在尝试将一些输出打印到控制台(以在构建它们时测试方法),但是此窗口没有控制台窗口表格申请。有没有办法让控制台窗口显示?
或者有人对我如何显示方法输出/结果有建议吗?
谢谢。
编辑 - 我想出了如何让控制台窗口工作。感谢大卫的回复。
【问题讨论】:
标签: .net testing c++-cli output
我正在 VS 2012 中处理 c++/CLI 应用程序分配。出于测试目的,我正在尝试将一些输出打印到控制台(以在构建它们时测试方法),但是此窗口没有控制台窗口表格申请。有没有办法让控制台窗口显示?
或者有人对我如何显示方法输出/结果有建议吗?
谢谢。
编辑 - 我想出了如何让控制台窗口工作。感谢大卫的回复。
【问题讨论】:
标签: .net testing c++-cli output
正如@David 指出的那样,Debug::WriteLine 是跟踪或将状态发送到输出窗口的绝佳方式。
System::Diagnostics::Debug::WriteLine(L" -- Object State or Tracing");
但是,如果您仍然需要 Windows 应用程序的控制台窗口,请考虑以下事项:
// Beginning of Application
#if _DEBUG
if (::AllocConsole()) // <-- http://msdn.microsoft.com/en-us/library/windows/desktop/ms681952(v=vs.85).aspx
if (!::AttachConsole(ATTACH_PARENT_PROCESS)) // -1 == ATTACH_PARENT_PROCESS or Process ID
System::Windows::MessageBox::Show(L"Unable to attach console window", L"Error", System::Windows::MessageBoxButton::OK, System::Windows::MessageBoxImage::Exclamation);
#endif
// Application End
#if _DEBUG
::FreeConsole(); // <-- http://msdn.microsoft.com/en-us/library/windows/desktop/ms683150(v=vs.85).aspx
#endif
请注意,这只有在使用调试配置构建时才能看到。
希望这会有所帮助。
【讨论】:
我建议您使用Debug::WriteLine。当您在调试器中进行测试时,它会写入 Visual Studio 的输出窗口。
【讨论】: