2013-02-13 7 views
0

두 개의 Ncurses 창을 만들었습니다 : 창 1과 창 2 창 2를 호출하기 전에 창 1에 쓸 수 있습니다. 그러나 Window 2를 호출 한 후 mvwprinw (window1, "Bla")를 사용하여 Window 1에 쓸 수 없습니다. 설명 :Ncurses : 다음 창을 만든 후 이전 창에 쓰지 못함

... 

initscr(); 
Window* window1 = newwin(10,10,0,0); 
mvwprinw(window1, "i am writing to window"); // this works 
wrefresh(window1); 

Window* window2 = newwin(10,10, 12, 12); 
mvwprintw(window2, "whee");    //works too 
wrefresh(window2); 

mvwprintw(window1, 0,0,"writing new sentence");  
// this does not show on the screen 
wrefresh(window1); 

... 

왜 그렇습니까?

+0

"실패"란 무엇을 의미합니까? 충돌? 아무것도 쓸 수 없습니까? 비밀 문서를 인쇄합니까? 또한 mvwprintw의 서명이 내가 본 문서와 일치하지 않습니다. http://linux.die.net/man/3/mvwprintw –

+0

(: wrefresh()를 호출 한 후에도 아무 것도 쓰지 않습니다. – jhtong

+0

mvwprinw 및 누락 된 x, y 매개 변수의 입력 오류와 같은 코드가 여전히 분명하게 손상되어 있습니다. 코드를 수정하기 전에 수정해야한다고 말하고 싶습니다. 형식이 좋지 않아서 부탁합니다. 창보다는 내 시스템에서 창. –

답변

0

해결 : 사람이 비슷한 문제가 발생하면

여러 C++ 클래스 내 창을 코딩에 유의하십시오.

리스너 클래스가 클래스 중 하나에 빌드되었습니다. 그러나 무한 루프 (코드를 설계하는 최적의 방법은 아니지만 프로그램에는 충분 함)라고 불렀습니다.

따라서 코드가 무한 루프에 걸려 다음 코드 행이 실행되지 않은 상태로 유지됩니다.

해결 방법 : 필요하다면 멀티 스레딩 라이브러리를 사용하십시오.

관련 문제