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