我有一个多线程程序,使用 MinGW 在 C 语言的 Windows 上编写。主线程等待用户输入,而第二个线程进行计算并向用户输出数据。当我启动线程时,我希望打开一个向用户显示计算数据的新窗口(例如 c 程序可以写入输出的命令窗口)。任何帮助,将不胜感激。
谢谢!
** * ** *编辑* ** * ** 我想出了以下代码: main 创建一个新线程,然后,在线程开始的函数中:
AllocConsole( );
AttachConsole( GetCurrentProcessId() );
freopen("CON", "w", stdout);
但是,一个新的控制台没有打开,当我使用 WriteConsole 写入控制台时,输出被发送到打开的初始控制台。AllocConsole 和 AttachConsole 都失败,错误为 ERROR_ACCESS_DENIED。我相信这意味着调用进程(线程)已经有一个控制台。线程不是它自己的“进程”吗?
有没有办法让初始控制台连接到父进程而不是将其转移到子进程?