Implementing libcurl:de

From Valve Developer Community
Revision as of 08:55, 26 April 2013 by Sacaldur (talk | contribs) (Created page with "{{otherlang2 |en=Implementing_libcurl }} {{toc-right}} '''[http://curl.haxx.se/libcurl/ libcurl]''' ist eine freie Bibliothek, die Daten aus dem Internet herunterladen kann. Sie...")

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search
English

libcurl ist eine freie Bibliothek, die Daten aus dem Internet herunterladen kann. Sie unterstützt jedes vorstellbare Protokoll und ist verfügbar unter einer MIT/X abgeleiteten Lizenz.

Implementierung

Windows

  1. Die neuste Version von libcurl herunterladen.
  2. Die \lib und \include Verzeichnisse an eine günstiges Stelle entpacken.
  3. libcurl's VS-Projekt öffnen und in den Releasemodus wechseln.
  4. Gehe nach libcurl > Properties > C/C++ > Preprocessor > Definitions und füge CURL_STATICLIB hinzu. Solange man nicht wirklich LDAP verwenden will, sollte HTTP_ONLY ebenfalls hinzugefügt werden.
  5. Gehe nach libcurl > Properties > C/C++ > Code Generation > Runtime Library und ändere es nach Multi-threaded (/MT).
  6. Baue libcurl.
  7. Füge libcurl.lib zum Hauptprojekt hinzu. Der einfachste Weg ist, es in den Solution Explorer zu schieben.
  8. Gehe nach Your Project > Properties > C/C++ > Preprocessor > Definitions und füge CURL_STATICLIB hinzu, wie es bereits für curl selbst erledigt wurde.
  9. Gehe nach Your Project > Properties > C/C++ > General > Additional Include Directories und füge das vorher entpackte libcurl-\include-Verzeichnis hinzu.
  10. Gehe nach Your Project > Linker > Input > Additional Dependencies und füge ws2_32.lib hinzu. Wenn LDAP verwendet werden soll, muss auch wldap32.lib hinzugefügt werden.
  11. #include "curl/curl.h" und beginne mit Programmieren!
Bemerkung:
Man muss Schritte 8-10 für Release- und Debug-Konfiguration wiederholen.

Linux

Zu erledigen

Verwendung

Hier der Code zum ausgeben der Inhalt einer Webseite auf der Konsole:

#include "curl/curl.h"

// Wird aufgerufen, wenn curl Daten vom Server erhält
static size_t rcvData(void *ptr, size_t size, size_t nmemb, void *userdata)
{
	Msg((char*)ptr); // bis zu 989 Zeichen gleichzeitig
	return size * nmemb;
}

void PrintPage()
{
        CURL *curl;
	curl = curl_easy_init();
	curl_easy_setopt(curl, CURLOPT_URL, "developer.valvesoftware.com");
	curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, rcvData);
	curl_easy_perform(curl);
	curl_easy_cleanup(curl);
}

ConCommand print_page("print_page", PrintPage);