libcurl absturtz



  • Ich hoffe ich bin jier richtig...

    Ich programiere mit wxDev C++ und atbeite mich gerade in libcurl ein. Ich will nur erreichen, dass mir eine Internetseite in einen String übergeben wird...

    /*****************************************************************************
     *                                  _   _ ____  _
     *  Project                     ___| | | |  _ \| |
     *                             / __| | | | |_) | |
     *                            | (__| |_| |  _ <| |___
     *                             \___|\___/|_| \_\_____|
     *
     * $Id: simple.c,v 1.6 2004/08/23 14:22:52 bagder Exp $
     */
    
    #include <stdio.h>
    #include <iostream>
    #include <curl/curl.h>
    
    int curl_writeCallback(char *inBuffer, size_t size, size_t nmemb, std::string *outBuffer)
    {
        outBuffer->append(inBuffer);
        return size*nmemb;
    }
    
    int main(void)
    {
      CURL *curl;
      CURLcode res;
      std::string out;
    
      curl = curl_easy_init();
      if(curl) {
        curl_easy_setopt(curl, CURLOPT_URL, "curl.haxx.se");
        curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, curl_writeCallback);
        curl_easy_setopt(curl, CURLOPT_WRITEDATA, out);
        res = curl_easy_perform(curl);
    
        /* always cleanup */
        curl_easy_cleanup(curl);
      }
      return 0;
    }
    

    Das ist mein aktueller Code... doch das Programm stürzt in diesem Zustand ab... es giebt aber keine Fehler beim compilen.

    Der Debugger sagt mir bei dieser Zeile:

    curl_easy_setopt(curl, CURLOPT_WRITEDATA, out);
    

    "Eine Zugriffsverletzung/Segmention fault) trat in ihrem Programm auf"

    Ich sitzte schon den ganzen tag mit mehreren verschiedenen Beispielen da doch es klappt einfach nicht. Ich hoffe mir kann jemand helfen.

    InFaIN



  • Kommando zurück - du übergibst der curl-funktion nicht einen Zeiger auf deinen String, sondern eine Kopie des Strings. Pack ein & vor out in der entsprechenden Zeile. Hoffe, dann klappts.



  • VIelen dank für deine Hilfe... mit dem & klappt es prima..

    InFaIN


Anmelden zum Antworten