Implementing libcurl:de

From Valve Developer Community
Jump to: navigation, search
Underlinked - Logo.png
This article needs more links to other articles to help integrate it into the encyclopedia. Please help improve this article by adding links that are relevant to the context within the existing text.
January 2024
English (en)Deutsch (de)
... Icon-Important.png

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!
Note.pngNote: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);