Название: libcurl callback внутри класса QObject Отправлено: aRise от Июнь 24, 2013, 12:32 Подскажите плиз куда копать :(
Пишу http-клиент. после долгих безрезультатных попыток раскачегарить QNetworkAccessManager, решено было перейти к использованию libcurl для отправки POST запроса на сервер использую колбэк курвы. при использовании колбэка "голяком" вне класса, он работает замечательно, но когда затаскиваю колбэк внутрь QObject класса, при его вызове в параметрах галиматья откровенная. в ptr вместо ссылки на буффер, значение 1. соответственно и прочитать в буфер не удается. куски кода: Код:
Код: size_t httpupload::curl_write(void *ptr, size_t size, size_t nmemb, void* userdata){ Название: Re: libcurl callback внутри класса QObject Отправлено: Bepec от Июнь 24, 2013, 12:46 Вы надеюсь в курсе различия между функцией и методом класса?
Чтобы вызвать метод, нужен объект класса. И кстати с моими знаниями - вообще удивительно, что оно у вас не падает в *****. Название: Re: libcurl callback внутри класса QObject Отправлено: kambala от Июнь 24, 2013, 12:52 со статическим методом коллбэк будет работать.
а зачем вообще наследоваться от QObject? планируешь сигналы рассылать? Название: Re: libcurl callback внутри класса QObject Отправлено: aRise от Июнь 24, 2013, 13:15 да, дальше будут рассылаться сигналы.
http клиент это только маленькая часть программы. поковырял в отладчике. пришла в голову мысль что при компиляции, у метода класса меняется модель вызова (__stdcall,__cdecl...) потому как параметры вроде как похожи, но порядок их передачи другой. попробую все 4 параметра задать тип uint и сравнить UPD: похоже что отбой тревоги. проблема не в коде. дома на Qt5.0.2+MinGW4.7 работает. на работе Qt4.8 пересобранная на сто рядов и MinGW старый вручную прикрученный. |