C und Curl



  • Ich will via libcurl einen einfachen HTTP GET befehl ausführem und das Ergebnis auf dem MOnitor oder in eienr Datei ausgeben, leider bekomme ich einen merkwürdigen Fehler und weiss keinen Rat mehr.
    Wenn ich es wie folgt implementiere, funktioniert alles:

    size_t writeIt( void *ptr, size_t size, size_t nmemb, void *stream)
    {
    	 int written = fwrite(ptr, size, nmemb, (FILE *)stream);
    	 return written;
    }
    
    int main(void)
    {
      CURL *curl;
    
      char *filename= "website.txt";
      FILE *htmlsite;
      printf("...und los geht's!");
      curl = curl_easy_init();
      if(curl)
      {
      	curl_easy_setopt(curl,CURLOPT_URL, "http://www.beispiel.de");
    	curl_easy_setopt(curl,CURLOPT_WRITEFUNCTION, writeIt);
    (...)
    

    Es wird der Coder der Seite ausgegeben. Nur ist die curl Geschichte eigentlich als Teil eines grösseren Projekts angedacht, dort gibt es eine Funktionsbibliothek, wo es ungefähr so ausschaut:

    size_t CLexistMet::writeIt( void *ptr, size_t size, size_t nmemb, void *stream)
    {
    	 int written = fwrite(ptr, size, nmemb, (FILE *)stream);
    	 return written;
    }
    
    //nun folgt ein Teil einer Methode als Ausriss, welche mit libcurl arbeitet und //die Funktion writeIt aufrufen soll:
    bool CLexistMet::createAlp(char* name)
    {
    CURL *curl;
    
      char *filename= "website.txt";
      FILE *htmlsite;
      curl = curl_easy_init();
      if(curl)
      {
      	curl_easy_setopt(curl,CURLOPT_URL,thequery);
    	curl_easy_setopt(curl,CURLOPT_WRITEFUNCTION, writeIt);
    // und so weiter
    

    Beim Parsen des unteren Funktionsaufrufs bekomme ich dann den Compilerfehler:

    error: invalid use of member(did you forget the '&')?

    Im oberen Beispiel mache ich es doch eigentlich nicht anders, der Funktionsaufruf ist Zeichengleich, nur da funktionierts, schreibe ich es innerhalb einer Funkktionsbibliothek nicht...Hä???



  • Ist es beabsichtigt, dass curl im oberen Beispiel vom Type CURL* und im unteren Beispiel vom Typ URL* ist?



  • Nö, ist wohl ein kleiner Copy and Paste Fehler, den werd ich direkt mal korrigieren.


Anmelden zum Antworten