Мое приложение - это многопоточное приложение (с использованием wxThreads). На данный момент основной поток вместе с дочерними рабочими потоками выводит различные сообщения в Stdout (используя cout).
У меня есть новый фрейм / окно с wxTextCtrl, и я хотел бы перенаправить все сообщения StdOut в него.
GuiLogFrame *logframe;
logframe = new GuiLogFrame(NULL, wxID_ANY, wxEmptyString);
logframe->Show();
logredirector = new wxStreamToTextRedirector(logframe->get_log_textctrl());
Это не работает. Но если я заменю последнюю строку
wxStreamToTextRedirector redir(logframe->get_log_textctrl());
Стандартный выход будет перенаправлен на логический кадр wxTextCtrl, пока redir находится в области видимости ... Я хочу, чтобы он оставался, даже если он выходит за пределы области видимости.
Я хочу, чтобы wxStreamToTextRedirector оставался нетронутым в течение всего времени работы приложения ... так что даже cout нового потока будет также перенаправляться на тот же wxTextCtrl.
Есть мысли?