gpt4 book ai didi

c++ - 附加控制台 I/O 的 Visual Studio 2015 问题

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:19:18 26 4
gpt4 key购买 nike

我最近将一个旧项目的解决方案升级为使用 visual studio 2015。该应用程序运行一个 opengl 应用程序。应用程序为输出分配一个单独的控制台。我使用控制台从我的 opengl 应用程序中输出相关的调试信息。

我已经完全升级了我的项目并且它工作正常。我的问题是,在将我的项目升级为使用 Visual Studio 2013 (v120) 工具集的 Visual Studio 2015 (v140) 工具集时,当我使用任何控制台输出函数(stdio.h 或 iostream)时,控制台不显示任何信息。这使调试变得更加痛苦。

需要说明的是,我可以将我的项目换回使用 Visual Studio 2013 (v120) 工具集,当我输出到控制台时,控制台将显示信息。

是否有人了解为什么较新的工具集阻止我在控制台窗口中看到信息的原因?我是否打算以不同方式设置控制台?


带有控制台输出重定向的清晰简单示例的链接。 (我会举更多的例子,但我的链接有限) http://asawicki.info/news_1326_redirecting_standard_io_to_windows_console.html

我的控制台输出创建示例:

AllocConsole();
long lStdHandle = (long)GetStdHandle(STD_OUTPUT_HANDLE);
int hConHandle = _open_osfhandle(lStdHandle, _O_TEXT);
FILE *fp = _fdopen(hConHandle, "w");
*stdout = *fp;
setvbuf(stdout, NULL, _IONBF, 0);

最佳答案

这个:

*stdout = *fp;

无效。 FILE 是一种不透明类型。您只能通过 stdio 库函数(fopenfreopenfread 等)操作FILE。 ).

如果您想重新打开其中一个标准流以引用控制台,一种支持的方法是:

freopen("CONOUT$", "w", stdout);

关于c++ - 附加控制台 I/O 的 Visual Studio 2015 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34143430/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com