0

我已将我的 C++ 应用程序从 Linux 移植到使用 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);

我们能够接受来自使用 libev、ev::io 的客户端的连接。但是当它触及 ev::timer 代码时我得到运行时异常。所以我的问题是我可以在 Windows 上克服这个问题吗?或者它是 Libev 在 Windows 上的限制......即它只支持套接字而不支持计时器等......

4

1 回答 1

0

是的,我们也可以在 Windows 上使用 Timers of Libev,而无需对已经在 Linux 上成功运行的代码进行任何更改......这在我的项目中得到了证明,该项目使用 C++ 从 Linux 移植到 Windows。之前在我的代码中发生的异常不是因为 Timers,而是因为在套接字编程的 send 和 recv 函数中错误地使用了 fd。Libev 是一个非常简单且很棒的库,可用于它支持的设施......

于 2017-12-20T07:13:10.477 回答