5
問題的cURL版本/操作系統是7.15和Red Hat 5,儘管如此,它們仍然無法改變它們。libcURL Progress函數不被調用
它不會被調用所有
int CurlUtil::progressCallback(void *clientp, double dltotal, double dlnow,
double ultotal, double ulnow)
{
DEFN_METHOD_NAME("progressCallback");
EX_ENTRY_EXIT();
EX_DEBUG("Total downloaded " << dlnow << "/" << dltotal);
EX_DEBUG("Total uploaded " << ulnow << "/" << ultotal);
CurlUtil* curlUtil = (CurlUtil*)clientp;
// If you return anything but 0, curl will abort transfer
return (true == curlUtil->killed()) ? 1 : 0;
}
設置代碼中的實際進度功能:
curl_easy_setopt(m_curl, CURLOPT_NOPROGRESS, 0);
curl_easy_setopt(m_curl, CURLOPT_PROGRESSFUNCTION, CurlUtil::progressCallback);
curl_easy_setopt(m_curl, CURLOPT_PROGRESSDATA, this)
哪裏CurlUtil的是,在存在代碼的類的CURLOPT_DEBUGFUNCTION工作正常,併爲。以相同的方式設置完全相同的功能。
您是否確實正在傳輸數據?如果轉移太快,也可能不會被調用。 'progressCallback'是靜態的嗎? – 2014-11-25 00:12:16
如果'progressCallback()'沒有被聲明爲'static',它就需要。您不能使用非靜態類方法作爲回調(除非將其包裝在thunk中)。 – 2014-11-25 00:26:23
...並且如果Remy或Collin的評論有效,則問題是錯誤的... – 2014-11-25 07:23:15