R6025 -pure virtual function call

前几天遇到了传说中的R6025错误,经过网络上搜索一番知道这是由于运行时调用了鸡肋的纯虚函数,一般出现在构造函数和析构函数中间接的调用了纯虚函数。但问题是,这不是我的情况。因此,我进行了两天的代码调试,总算是发现了元凶。 问题出在完成端口!在我的完成端口模型中,完成键是一个对象,它随一个SOCKET句柄关联到完成端口。当一个完成包被成功获取,则使用这个完成键(对象)执行完成任务。这没错,并且我把对象使用引用计数来管理生命周期,一切尚在预期之中。但问题出在,我需要更换这个SOCKET句柄的完成键。当这个SOCKET需要收发数据,则被封装在一个叫NetSession的类中,完成键就是...
2011-02-02 19:31 | 阅读 16871 次 | 评论 1 条

995 : 由于线程退出或应用程序请求,已放弃 I/O 操作。

在一个线程A中检测AcceptEx的存量,如果小于某个数值则投递一定数量的AcceptEx到完成端口。这个线程非常简单,但是在程序退出时必须清理掉投递到完成端口中的那些AcceptEx,以达到释放资源。因此,在程序退出前我必须发出信号给线程A,告诉它要终止运行。然,线程A是终止运行了,但存在完成端口中的AcceptEx还没清理,我尝试了一下几种清理方式: 第一天、直接closesocket(listensocket)关闭这个关联到完成端口的监听SOCKET。 这种方式,失败了!完成端口鸟都没鸟这已经关闭的listensocket,没有发生出队一个失败的完成包。 第二天、先调...
2011-01-30 22:42 | 阅读 15284 次 | 评论 5 条
最新评论