C++ PostMessage无法在winform应用程序中使用分配的控制台
因此,我得到了一个c++/cli表单应用程序,在我的应用程序中有一个名为checkBox3的中文checkboxdebug: 这是复选框的代码: private:System::Void checkBox3\u CheckedChangedSystem::对象^sender,System::EventArgs^e{ //设置调试标志 g、 调试=!g.debug; HWND allocatedConsole=NULL; 如果此->复选框3->选中==true { allocsole; freopenCONOUT$,w,stdout;//使用cout } 否则{ allocatedConsole=GetConsoleWindow;C++ PostMessage无法在winform应用程序中使用分配的控制台,c++,windows,c++-cli,C++,Windows,C++ Cli,因此,我得到了一个c++/cli表单应用程序,在我的应用程序中有一个名为checkBox3的中文checkboxdebug: 这是复选框的代码: private:System::Void checkBox3\u CheckedChangedSystem::对象^sender,System::EventArgs^e{ //设置调试标志 g、 调试=!g.debug; HWND allocatedConsole=NULL; 如果此->复选框3->选中==true { allocsole; freop
std::cout尝试发送wParam=SC\u CLOSE的WM\u SYSCOMMAND消息。这更接近于模拟从系统菜单中选择“CLOSE”。尝试发送wParam=SC\u CLOSE的WM\u SYSCOMMAND消息。这更接近于模拟从系统菜单中选择“CLOSE”。但请注意竞争条件。当控制台关闭时,它会发送一个CTRL\u CLOSE_事件通过会话服务器发送到所有连接的进程,对于此事件,服务器在强制终止进程之前给进程5秒的退出时间。为了避免这种情况,程序需要在将关闭消息发布到控制台窗口之前通过FreeConsole从控制台分离。但请注意竞争条件。当控制台e关闭时,它会通过会话服务器向所有连接的进程发送一个CTRL_CLOSE_事件,对于该事件,服务器会给进程5秒钟的退出时间,然后强制终止进程。为了避免出现这种情况,在将关闭消息发布到控制台窗口之前,程序需要通过FreeConsole从控制台分离。