Cで書かれたコールバックをC++に適応させようとしているときに、C言語に問題があります。コンパイラは次のエラーを示していますC関数のC++への変換
error C2664: 'fread' : cannot convert parameter 4 from 'void *' to 'FILE*'
1>Conversion from 'void*' to pointer to non-'void' requires an explicit cast
私はこのsize_t retcode = fread(ptr, size, nmemb, stream)
がcastが必要であることがわかりました。私は試しましたが、何も動作しません。ここでは、コードは次のとおりです。
static size_t read_callback(void *ptr, size_t size, size_t nmemb, void *stream)
{
curl_off_t nread;
size_t retcode = fread(ptr, size, nmemb, stream);
nread = (curl_off_t)retcode;
fprintf(stderr, "*** We read %" CURL_FORMAT_CURL_OFF_T
" bytes from file\n", nread);
return retcode;
}
キャストすることはできますが、パラメータタイプをFILE *に変更する方が簡単ではないでしょうか?あなたが提供していない残りの構造に依存します。 – DrC
__エラーメッセージを注意深くお読みください。これを修正するために何ができるか教えてください。 – ForceBru
http://stackoverflow.com/questions/8523318/void-to-file-is-that-posable – samnaction