Implementing libcurl

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

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(en) 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.pngHinweis: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);