diff options
| author | Daniel Stenberg <daniel@haxx.se> | 2002-01-17 00:27:56 +0000 | 
|---|---|---|
| committer | Daniel Stenberg <daniel@haxx.se> | 2002-01-17 00:27:56 +0000 | 
| commit | 01ecb1d7e7d40d6b414bc8edb66fd3eb4782c454 (patch) | |
| tree | 55c0638ddf53ae436ece154a7e215a35ea4399f1 /docs | |
| parent | e177f145954e6918c0926b2e400892caaa7fae8f (diff) | |
filled-in text in the "Building" chapter and added a "libcurl with C++"
chapter
Diffstat (limited to 'docs')
| -rw-r--r-- | docs/libcurl-the-guide | 55 | 
1 files changed, 54 insertions, 1 deletions
diff --git a/docs/libcurl-the-guide b/docs/libcurl-the-guide index 9932a9292..a04d2dac5 100644 --- a/docs/libcurl-the-guide +++ b/docs/libcurl-the-guide @@ -10,7 +10,7 @@ PROGRAMMING WITH LIBCURL  About this Document   This document will attempt to describe the general principle and some basic - approach to consider when programming with libcurl. The text will focus + approaches to consider when programming with libcurl. The text will focus   mainly on the C/C++ interface but might apply fairly well on other interfaces   as well as they usually follow the C one pretty closely. @@ -23,12 +23,44 @@ About this Document  Building +  There are many different ways to build C programs. This chapter will assume +  a unix-style build process +    Compiling the Program +    Your compiler needs to know where the libcurl headers are +    located. Therefore you must set your compiler's include path to point to +    the directory where you installed them. The 'curl-config' tool can be used +    to get this information: + +        $ curl-config --cflags +    Linking the Program with libcurl +    When having compiled the program, you need to link your object files to +    create a single executable. For that to succeed, you need to link with +    libcurl and possibly also with other libraries that libcurl itself depends +    on. Like OpenSSL librararies, but even some standard OS libraries may be +    needed on the command line. To figure out which flags to use, once again +    the 'curl-config' tool comes to the rescue: + +        $ curl-config --libs +    SSL or Not +    libcurl can be built and customized in many ways. One of the things that +    varies from different libraries and builds is the support for SSL-based +    transfers, like HTTPS and FTPS. If OpenSSL was detected properly at +    build-time, libcurl will be built with SSL support. To figure out if an +    installed libcurl has been built with SSL support enabled, use +    'curl-config' like this: + +        $ curl-config --feature + +    And if SSL is supported, the keyword 'SSL' will be written to stdout, +    possibly together with a few other features that can be on and off on +    different libcurls. +  Global Preparation @@ -199,6 +231,27 @@ Upload Data to a Remote Site   fast as possible. The callback should return the number of bytes it wrote in   the buffer. Returning 0 will signal the end of the upload. +libcurl with C++ + + There's basicly only one thing to keep in mind when using C++ instead of C + when interfacing libcurl: + +    "The Callbacks Must Be Plain C" + + So if you want a write callback set in libcurl, you should put it within + 'extern'. Similar to this: + +     extern "C" { +       size_t write_data(void *ptr, size_t size, size_t nmemb, +                         void *ourpointer) +       { +         /* do what you want with the data */ +       } +    } + + This will of course effectively turn the callback code into C. There won't be + any "this" pointer available etc. +  -----  Footnotes:  | 
