<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[(ungelöst)cURL access violation &#x2F; (gelöst)unvollständige downloads]]></title><description><![CDATA[<p>Guten abend erstmal,<br />
ich hab ein Problem mit libcurl.<br />
Ich hab es jetzt mit MSVC und Dev C++ versucht.<br />
Das ganze habe ich mit folgendem Code probiert.</p>
<pre><code class="language-cpp">CURL *curl;
CURLcode res;
curl = curl_easy_init();
//Nachfolgender Code ist für das 1. Problem nicht wichtig
curl_easy_setopt(curl, CURLOPT_URL, &quot;http://example.com/&quot;);
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, write_data);
string buffer;
curl_easy_setopt(curl, CURLOPT_WRITEDATA, (void *)&amp;buffer);
</code></pre>
<pre><code class="language-cpp">size_t write_data(void *buffer, size_t size, size_t nmemb, void *userp)
{ 
  fstream f;
  f.open(&quot;test.html&quot;, ios_base::out);
  f &lt;&lt; (char *)buffer;
  f.close();
}
</code></pre>
<p>An sich sollte das ja keine große Sache sein. Ich hab mir alles geladen, was ich brauche und dann einfach mal losgelegt.<br />
Nun hab ich aber folgende Probleme.<br />
Unter MSVC kommt im Debugger bei curl_easy_init() eine Fehlermeldung</p>
<blockquote>
<p>Unbehandelte Ausnahme bei 0x00026810 in facebook.exe: 0xC0000005: Access violation.</p>
</blockquote>
<p>Hab schon ne Menge gegoogelt aber leider nichts gefunden.</p>
<p>Dann hab ich das ganze mit Dev C++ gemacht.<br />
Hat auf den ersten Blick wunderbar funktioniert. Allerdings durfte ich nach einigen Tests feststellen, dass mein Programm die Dateien nicht immer vollständig runterlädt. Die dateien hören mittendrin auf.</p>
<p>Ein test mit Wireshark zeigte mir, dass alle Datensegmente gesendet wurden. Es fehlt also nichts. Kennt jemand dieses Problem? Ich finde es sehr merkwürdig. Die dateien sind auch bei jedem download unterschiedlich groß. mal lädt er ein paar bytes mehr, mal weniger. Dazu zu sagen ist vielleicht, dass es sich hier nur um ein paar kb-große html dateien handelt.</p>
<p>Mit freundlichen Grüßen,<br />
Markus</p>
<p>edit: ups, hab mich im forum verlesen. sollte gar nicht hier rein.</p>
<p>edit2: ich kann ja noch hinzufügen. login mit post, cookies verwalten etc. funktioniert schon. nur das runterladen hapert noch. das ist nun aber sehr wichtig, da ich sonst das ganze projekt in die tonne kloppen kann.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/275662/ungelöst-curl-access-violation-gelöst-unvollständige-downloads</link><generator>RSS for Node</generator><lastBuildDate>Wed, 26 Aug 2026 16:19:39 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/275662.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 18 Oct 2010 19:21:53 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to (ungelöst)cURL access violation &#x2F; (gelöst)unvollständige downloads on Tue, 19 Oct 2010 11:46:51 GMT]]></title><description><![CDATA[<p>Guten abend erstmal,<br />
ich hab ein Problem mit libcurl.<br />
Ich hab es jetzt mit MSVC und Dev C++ versucht.<br />
Das ganze habe ich mit folgendem Code probiert.</p>
<pre><code class="language-cpp">CURL *curl;
CURLcode res;
curl = curl_easy_init();
//Nachfolgender Code ist für das 1. Problem nicht wichtig
curl_easy_setopt(curl, CURLOPT_URL, &quot;http://example.com/&quot;);
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, write_data);
string buffer;
curl_easy_setopt(curl, CURLOPT_WRITEDATA, (void *)&amp;buffer);
</code></pre>
<pre><code class="language-cpp">size_t write_data(void *buffer, size_t size, size_t nmemb, void *userp)
{ 
  fstream f;
  f.open(&quot;test.html&quot;, ios_base::out);
  f &lt;&lt; (char *)buffer;
  f.close();
}
</code></pre>
<p>An sich sollte das ja keine große Sache sein. Ich hab mir alles geladen, was ich brauche und dann einfach mal losgelegt.<br />
Nun hab ich aber folgende Probleme.<br />
Unter MSVC kommt im Debugger bei curl_easy_init() eine Fehlermeldung</p>
<blockquote>
<p>Unbehandelte Ausnahme bei 0x00026810 in facebook.exe: 0xC0000005: Access violation.</p>
</blockquote>
<p>Hab schon ne Menge gegoogelt aber leider nichts gefunden.</p>
<p>Dann hab ich das ganze mit Dev C++ gemacht.<br />
Hat auf den ersten Blick wunderbar funktioniert. Allerdings durfte ich nach einigen Tests feststellen, dass mein Programm die Dateien nicht immer vollständig runterlädt. Die dateien hören mittendrin auf.</p>
<p>Ein test mit Wireshark zeigte mir, dass alle Datensegmente gesendet wurden. Es fehlt also nichts. Kennt jemand dieses Problem? Ich finde es sehr merkwürdig. Die dateien sind auch bei jedem download unterschiedlich groß. mal lädt er ein paar bytes mehr, mal weniger. Dazu zu sagen ist vielleicht, dass es sich hier nur um ein paar kb-große html dateien handelt.</p>
<p>Mit freundlichen Grüßen,<br />
Markus</p>
<p>edit: ups, hab mich im forum verlesen. sollte gar nicht hier rein.</p>
<p>edit2: ich kann ja noch hinzufügen. login mit post, cookies verwalten etc. funktioniert schon. nur das runterladen hapert noch. das ist nun aber sehr wichtig, da ich sonst das ganze projekt in die tonne kloppen kann.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1967278</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1967278</guid><dc:creator><![CDATA[jijin]]></dc:creator><pubDate>Tue, 19 Oct 2010 11:46:51 GMT</pubDate></item><item><title><![CDATA[Reply to (ungelöst)cURL access violation &#x2F; (gelöst)unvollständige downloads on Mon, 18 Oct 2010 20:32:39 GMT]]></title><description><![CDATA[<p>Dieser Thread wurde von Moderator/in <a href="http://www.c-plusplus.net/forum/profile-var-mode-is-viewprofile-and-u-is-1652.html" rel="nofollow">phlox81</a> aus dem Forum <a href="http://www.c-plusplus.net/forum/viewforum-var-f-is-51.html" rel="nofollow">Andere GUIs - Qt, GTK+, wxWidgets</a> in das Forum <a href="http://www.c-plusplus.net/forum/viewforum-var-f-is-15.html" rel="nofollow">C++</a> verschoben.</p>
<p>Im Zweifelsfall bitte auch folgende Hinweise beachten:<br />
<a href="http://www.c-plusplus.net/forum/viewtopic-var-t-is-39405.html" rel="nofollow">C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?</a></p>
<p><em>Dieses Posting wurde automatisch erzeugt.</em></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1967316</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1967316</guid><dc:creator><![CDATA[C++ Forumbot]]></dc:creator><pubDate>Mon, 18 Oct 2010 20:32:39 GMT</pubDate></item><item><title><![CDATA[Reply to (ungelöst)cURL access violation &#x2F; (gelöst)unvollständige downloads on Tue, 19 Oct 2010 10:45:46 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">string buffer;
curl_easy_setopt(curl, CURLOPT_WRITEDATA, (void *)&amp;buffer);
</code></pre>
<p>Wozu der <code>string</code> ?</p>
<pre><code class="language-cpp">size_t write_data(void *buffer, size_t size, size_t nmemb, void *userp)
{ 
  fstream f;
  f.open(&quot;test.html&quot;, ios_base::out);
  f &lt;&lt; (char *)buffer;
  f.close();
}
</code></pre>
<p>Bist du sicher, dass cURL <code>buffer</code> mit 0 terminiert?<br />
Wahrscheinlich wird dieser Callback mehrmals aufgerufen und jedes Mal die Datei überschrieben.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1967461</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1967461</guid><dc:creator><![CDATA[TyRoXx]]></dc:creator><pubDate>Tue, 19 Oct 2010 10:45:46 GMT</pubDate></item><item><title><![CDATA[Reply to (ungelöst)cURL access violation &#x2F; (gelöst)unvollständige downloads on Tue, 19 Oct 2010 11:46:20 GMT]]></title><description><![CDATA[<p>Der String ist ein Überbleibsel, weil ich das ein paar mal überarbeitet hab. Ich fand ein paar Sachen, die ich dann ausprobiert habe und das hat sich dann alles so ergeben.</p>
<blockquote>
<p>Wahrscheinlich wird dieser Callback mehrmals aufgerufen und jedes Mal die Datei überschrieben.</p>
</blockquote>
<pre><code>oh gott ich bin so blöd. Hab gerade gemerkt, dass der die Segmente andersrum zusammensetzt. Da ich bei jeder Datei den Anfang gesehen hab, dachte ich mir, der hört einfach mittendrin auf. Deswegen hab ich es mit io_base::app gar nicht erst versucht. Jetzt macht das auch sinn, warum das programm immer unterschiedlich viel runterlädt.
Vielen Dank, dann wär das problem schonmal gelöst. Das Zusammensetzen krieg ich schon hin.

So, wenn mir dann noch jemand beim Problem mit MSVC helfen würde. Ist jetzt aber nicht so wichtig für mich.

Nochmal Danke für den kleinen Denkanstoß.
</code></pre>
<p><strong>EDIT: mist, Denkfehler. Die datei war nur so groß, weil die neuen Dateien drangehängt hab. Da fehlt immernoch der ganze rest.</strong></p>
<p>noch ein EDIT:<br />
hab nochmal nach einer anderen möglichkeit zum schreiben gesucht. War ja irgendwie klar, dass es daran liegt. Bin auf das hier gestoßen.<br />
<a href="http://stackoverflow.com/questions/1636333/download-file-using-libcurl-in-c-c" rel="nofollow">http://stackoverflow.com/questions/1636333/download-file-using-libcurl-in-c-c</a><br />
Klappt jetzt wunderbar.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1967469</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1967469</guid><dc:creator><![CDATA[jijin]]></dc:creator><pubDate>Tue, 19 Oct 2010 11:46:20 GMT</pubDate></item></channel></rss>