c++ - QNetworkAccessManager finished signal is not emitted when compiled in release mode (VS 2005) -
i have class reads web pages. works expected when built in debug mode in visual studio, doesn't work when built in release mode.
basically, qnetworkaccessmanager
's finished signal never gets emitted.
i have code stripped bare working minimum , still doesn't work. have tried use qtnetworkd4.lib
in release mode (the same library in debug mode) , disable optimization, no effect.
qt version 4.4
edit
here sample code.
header:
#include <qnetworkaccessmanager> #include <qnetworkreply> #include <qnetworkrequest> #include <qstringlist> class webreader : public qobject{ q_object public: qstringlist *pagedata_; webreader(); ~webreader(); void fetch(const qstring &url); public slots: void slotreplyfinished(qnetworkreply *reply); protected: qnetworkaccessmanager *netmanager_; private: qnetworkreply *netreply_; };
cpp:
webreader::webreader(){ netmanager_ = new qnetworkaccessmanager(this); pagedata_ = null; connect(netmanager_, signal(finished(qnetworkreply *)), this, slot(slotreplyfinished(qnetworkreply *))); } webreader::~webreader(){ } // send request read web page void webreader::fetch(const qstring &url){ netreply_ = netmanager_->get(qnetworkrequest(qurl(url))); } // slot accepts read data webpage void webreader::slotreplyfinished(qnetworkreply *reply){ if (null != pagedata_){ delete pagedata_; } pagedata_ = new qstringlist(qstring(reply->readall()).split(qstring("\n"))); netreply_->deletelater(); }
as see, stripped down bare minimum works in debug mode.
copy libeay32 , ssleay32 same folder program.
Comments
Post a Comment