Curl crasht Programm



  • Hi,
    ich habe ein, ich schaetze einmal, kleines Problem mit Curl und zwar Beendet sich mein Programm von ganz alleine ohne Fehlermeldungen. Ich konnte es jetzt auf Curl zurueckfuehren und hoffe mir kann jemand ein wenig weiterhelfen.

    parser.h

    #ifndef Parser_H
    #define Parser_H
    
    #include <iostream>
    #include <string>
    
    using namespace std;
    
    class Parser {
    public:
        Parser(const string& resource);
        string getCurrent(string& share);
    
    private:
        size_t handleData(void *ptr, size_t size, size_t nmemb, void *stream);
        string resource;
        string contents;
    };
    #endif
    

    parser.cpp

    string Parser::getCurrent(string& share) {   
        CURL *curl;
        curl = curl_easy_init();
    
        if(curl) {
            curl_easy_setopt(curl, CURLOPT_URL, share.c_str());
            curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, &Parser::handleData); 
            curl_easy_perform(curl);
    
            curl_easy_cleanup(curl);
        }
    
        return contents;
    }
    
    size_t Parser::handleData(void *ptr, size_t size, size_t nmemb, void *stream) {
        int numbytes = size*nmemb;
        char lastchar = *((char *) ptr + numbytes - 1);
        *((char *) ptr + numbytes - 1) = '\0';
        contents.append((char *)ptr);
        contents.append(1,lastchar);
        *((char *) ptr + numbytes - 1) = lastchar;
    
        return size*nmemb;
    }
    

    Rgds
    Layne



  • was sagt der debugger, in welcher Zeile es aussteigt? Schon die Variablenwerte überprüft an der Stelle?



  • Du gibst curl eine nicht statische Member Funktion für den Write-Callback. Das führt zu dem crash.


Anmelden zum Antworten