编译时遇到了一个问题。
我发现错误:
在会员功能中 'void CSConnection :: onReadable(const 波科:: AutoPtr和放大器;)“:| CSConnection.cpp | 92 |错误:没有 匹配函数用于调用 '波科::线程池::开始(QuitHandler *的)' | CSConnection.cpp | 92 |注意:候选人 主要有:| C:\ MinGW的\ BIN .. \ LIB \ GCC \的mingw32 \ 4.7.2 ........ \ \包括波科\ ThreadPool.h | 122 |注: void Poco :: ThreadPool :: start(Poco :: Runnable&)| C:\ MinGW的\ BIN .. \ LIB \ GCC \的mingw32 \ 4.7.2 ........ \ \包括波科\ ThreadPool.h | 122 |注: 从'QuitHandler *'到参数1没有已知的转换 '波科:: Runnable接口和放大器;' | C:\ MinGW的\ BIN .. \ LIB \ GCC \的mingw32 \ 4.7.2 ........ \ \包括波科\ ThreadPool.h | 127 |注: void Poco :: ThreadPool :: start(Poco :: Runnable&,const string&)| C:\ MinGW的\ BIN .. \ LIB \ GCC \的mingw32 \ 4.7.2 ........ \ \包括波科\ ThreadPool.h | 127 |注: 候选人需要2个参数,1个提供| || ===构建完成:1 错误,0警告(0分钟,1秒)=== |
这是quithandler类:
class QuitHandler : public Runnable
{
public:
QuitHandler(){}
CSConnection * _con;
void run();
virtual ~QuitHandler();
protected:
private:
char * _packet;
};
这里有错误行
QuitHandler * qh;
qh = new QuitHandler();
WorkerThreadPool::getInstance().tp->start(qh);
谢谢!
答案 0 :(得分:1)
start方法接受引用,而不是指针:http://pocoproject.org/docs/Poco.ThreadPool.html#11337。
快速修复将是:
QuitHandler qh;
WorkerThreadPool::getInstance().tp->start(qh);
或
QuitHandler* qh = new QuitHandler();
WorkerThreadPool::getInstance().tp->start(*qh);