Visual Studio 2015 "stealing" 应用程序的控制台
Visual Studio 2015 "stealing" the application's console
我正在使用 Visual Studio 2015 作为 IDE 开发 gcc 应用程序。调试器是 gdb。
应用程序创建自己的window。当我使用 DEBUG 开关进行编译时,我还需要应用程序生成一个控制台 window。它用于从多个线程调试和输出 printf。感谢“-mwindows”开关,当我从 Visual Studio.
外部执行应用程序时,它可以正常工作
不幸的是,当我从 Visual Studio 中 运行 应用程序时,它似乎窃取了控制台 window。没有生成控制台,printf 的输出被重定向到 Output Debug window.
如果 VS 控制台实际上正确地打印了“\n”而不是将它们从输出中删除,这就不是什么大问题。一切都打印在同一行上,输出变得不可读。尽我所能,我无法让 VS 在 Output Debug window 中插入换行符。我在网上查了很多,这个问题似乎有据可查,但我找不到满意的答案。
此时,这些解决方案中的任何一个都适合我:
- 防止 Visual Studio 窃取应用程序的控制台 window;
- 为我的所有 printf 添加特殊字符,以便 Output Debug 打印换行符和回车符 returns.
编辑:
理想情况下,解决方案应该是跨平台的,从某种意义上说,它不应该增加对 WinAPI 的依赖。
编辑2:
"\t" 似乎按预期工作。为什么“\n”不起作用?我也试过“\r\n”无济于事。
Microsoft Visual Studio 的一位高级 PM 经理就此问题联系了我。我在 Visual Studio 内将其作为 "feedback" 发布,大约四个月前(大约在我将其发布在这里的时间)..
他承认了这个问题,并表示他们将尝试在 Update 3 中添加对外部控制台的支持。
我正在使用 Visual Studio 2015 作为 IDE 开发 gcc 应用程序。调试器是 gdb。
应用程序创建自己的window。当我使用 DEBUG 开关进行编译时,我还需要应用程序生成一个控制台 window。它用于从多个线程调试和输出 printf。感谢“-mwindows”开关,当我从 Visual Studio.
外部执行应用程序时,它可以正常工作不幸的是,当我从 Visual Studio 中 运行 应用程序时,它似乎窃取了控制台 window。没有生成控制台,printf 的输出被重定向到 Output Debug window.
如果 VS 控制台实际上正确地打印了“\n”而不是将它们从输出中删除,这就不是什么大问题。一切都打印在同一行上,输出变得不可读。尽我所能,我无法让 VS 在 Output Debug window 中插入换行符。我在网上查了很多,这个问题似乎有据可查,但我找不到满意的答案。
此时,这些解决方案中的任何一个都适合我:
- 防止 Visual Studio 窃取应用程序的控制台 window;
- 为我的所有 printf 添加特殊字符,以便 Output Debug 打印换行符和回车符 returns.
编辑: 理想情况下,解决方案应该是跨平台的,从某种意义上说,它不应该增加对 WinAPI 的依赖。
编辑2: "\t" 似乎按预期工作。为什么“\n”不起作用?我也试过“\r\n”无济于事。
Microsoft Visual Studio 的一位高级 PM 经理就此问题联系了我。我在 Visual Studio 内将其作为 "feedback" 发布,大约四个月前(大约在我将其发布在这里的时间)..
他承认了这个问题,并表示他们将尝试在 Update 3 中添加对外部控制台的支持。