2010-03-16 4 views
4

wxWidgets GUI 애플리케이션을 작성하고 있지만 콘솔 객체도 사용하고 있습니다.wxWidgets에서 GUI로 콘솔 연결하기

stdout을 표시하고 stdin에 액세스하는 방법이 필요합니다. 이렇게하는 가장 좋은 방법은 콘솔과 GUI를 함께 표시하는 것입니다. 사용자가 명령 프롬프트/shell 등에서 프로그램을 실행하지만 응용 프로그램이 실행될 때 명령 프롬프트가 자동으로 열리지 않고 stdout을 볼 수있는 경우이 작업을 수행 할 수 있습니다.

콘솔 응용 프로그램을 실행할 때 콘솔이 자동으로 실행되므로이 ​​작업이 가능해야한다는 것을 알고 있습니다. Windows API가 필요한 솔루션을 하나 또는 두 개 발견했지만 슬프게도 내 코드가 크로스 플랫폼이어야합니다 (Linux에서이 코드를 개발 중입니다).

+0

효과가 있었습니까? – Qwerty

답변

2

해결책은 매우 간단합니다. wxStreamToTextRedirector을 사용하십시오. 이렇게하면 콘솔 출력을 텍스트 컨트롤로 리디렉션 할 수 있습니다. 이를 위해 별도의 창을 만들어서 콘솔처럼 보이게 할 수 있습니다. 위의 링크는 예제를 제공합니다.

1

Build Targets의 프로젝트 속성에서 Code :: Blocks를 사용하는 경우 프로젝트를 콘솔 응용 프로그램으로 빌드하는 옵션이 있습니다. 그걸 선택하면 콘솔이 연결된 상태에서 앱이 실행됩니다.

0

WxWidgets에는 콘솔을 표시하기위한 매크로가 있습니다 (wxIMPLEMENT_APP_CONSOLE, wxIMPLEMENT_APP). 잘 작동하는 것처럼 보입니다. 선 처리기 정의에 따라 적절한 매크로를 선택할 수 있습니다.

class MyApp: public wxApp 
{ 
    public: 
     virtual bool OnInit(); 
}; 

#ifdef _DEBUG 
wxIMPLEMENT_APP_CONSOLE(MyApp); 
#else 
wxIMPLEMENT_APP(MyApp); 
#endif 


bool MyApp::OnInit() 
{ 

    MainWindow *frame = new MainWindow(TOOLNAME, wxPoint(50, 50), wxSize(600,400)); 
     frame->Maximize(); 
... 
    return true; 
} 
관련 문제