2017-11-22 8 views
0

Libev를 사용하는 Windows에서 Linux로 C++ 응용 프로그램을 포팅했습니다. 타이머가 libev 코드 ... 아래 샘플 코드에서 시작했다 그러나 나는 Windows에서 Libev에서 타이머를 사용할 수 있습니까?

io.set<CHandlerAlwaysOn, &CHandlerAlwaysOn::callback>(this); 
io.set(loop); 
io.start(sfd,event); 
//ev::timer tim; 
tim.set<CHandlerAlwaysOn,&CHandlerAlwaysOn::cb_timeout>(this); 
tim.set(loop); 
tim.start(ntimeout,0.); 
ev_run(loop,0); 

우리는 EV :: IO, libev를 사용하는 클라이언트의 연결을 허용 할 수 있습니다 ... 내 코드에서 시간 오류를 실행하세요. 하지만 나는 그것을 만지는 런타임 예외를 얻을 : : : 타이머 코드. 내 질문에 Windows에서이 문제를 극복 할 수 있습니까? 또는 Windows에서의 Libev의 제한 사항입니다. 그것은 단지 소켓 및 타이머 등을 지원하지 않습니다 ...

답변

0

그래, 우리는 이미 Linux에서 성공적으로 실행되고있는 코드에 대한 변경없이 Windows에서도 Libev의 타이머를 사용할 수 있습니다 ... 그것은 내 프로젝트에서 증명되었습니다 Linux에서 C++을 사용하여 창으로. 이전에 내 코드에서 발생한 예외는 타이머 때문이 아니라 소켓 프로그래밍의 send 및 recv 함수에서 fd를 잘못 사용하여 발생합니다. Libev는 지원하는 시설에서 사용하기에 정말 쉽고 훌륭한 라이브러리입니다 ...