Использование libcurl в Visual Studio.

 

2 Вступление

 

Выдержка с CURL вебстраницы(http://curl.haxx.se/)

 

“Curl – это инструмент для передачи данных в URL-синтаксисе, поддерживающий FTP, FTPS, HTTP, HTTPS, GOPHER, TELNET, DICT, FILE and LDAP. Curl поддерживает HTTPS сертификаты, HTTP POST, HTTP PUT, FTP загрузки, kerberos, HTTP загрузки через базовую форму, прокси, cookies(куки),  логин+пароль аутентификацию, возобновлением передачи данных, http-прокси-туннели и еще вагон различных трюков.”

 

В этом документе мы объясняем как использовать CURL, но приводим самые простые способы с минимальным использование файлов из библиотеки CURL. Один раз собрав и запустив такое простое приложение вы сможете изучить и другие особенности CURL и увеличить функциональные возможности вашего проекта.

 

Этот документ объясняет как сконфигурировать различные части, читая группы новостей, много людей похожие проблемы с использованием dll-файлов, конфигурированием Visual Studio и библиотеки CURL. Поскольку сейчас я имею решения этих проблем, то почему бы не выложить их в виде документа, чтобы другие люди не тратили много времни на поиски этих решений.

 

 

 

 

 

 

 

Технология Kerberos. Название технологии аутентификации и шифрования с открытым ключом, созданной в середине 1980-х годов в Массачусетском технологическом институте (MIT) на базе стандарта DES. Описана в RFC 1510. Kerberos используется в Microsoft Windows начиная с версии 2000. В русском переводе Kerberos - Цербер. Так в древнегреческой мифологии назывался трёхголовый пёс, охранявший вход в подземное царство.

В этом документе использовалась Visual Studio версии 6.0, но все сказанное можно отнести к любой другой версии.

 


3 Установка библиотеки CURL.

 

Вам необходимо скачать самые свежие исходники CURL и распаковать архив для дальнейшего использования (для сборки dll и lib файлов).

 

3.1 Загрузите надлежащие исходники.

 

Загрузите последнюю версию CURL со страницы загрузки CURL:

 

http://curl.haxx.se/download.hmtl

 

При написании этого документа я использовал версию curl-7.9.6.zip

 

Распакуйте ахрив во временный каталог. При этом вы получите следующую структуру каталогов.

 

                                                                      

 

 

 

 

 

 

 

 

 

Наши приложения будут использовать dll файлы в среде Windows, поэтому интерес для нас представляет только каталог “lib”. Другие файлы и каталоги вы можете рассмотреть нескольоко позже, когда уже создатите свою первую программу. Вам также понадобится каталог “include” вместе со всеми заголовочными файлами внутри.

 

 

3       Компиляция библиотеки CURL.

 

Перейдите в каталог “lib” и двойным шелчком откройте файл “curlib.dsw”, являющийся файлом проекта Visual Studio библиотеки CURL. Этим вы запустите Visual Studio с нужной конфигурацией и установками. Понятно, что для этого у вас уже должен быть установлен пакет Visual Studio.

 

Когда проект будет открыт, нажмите кнопку “Build”, чтобы скомпилировать файлы и скомпоновать проект:

 


 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


Теперь, если вы загляните в каталог “curl-7.9.6\lib\Dubug”, то увидите там два созданных файла, которые представляют для нас интерес:

 

·        libcurl.lib

·        libcurl.dll

 

Для создания нашего приложения минимум, что нам потребуется,  это эти два файла плюс заголовочные файлы из каталога “include”. Теперь вы можете закрыть проект Visual Studio, т.к. мы переходим к создания нашего приложения.

 

 


4       Использование библиотеки libcurl (libcurl.dll) в вашем проекте Visual Studio

 

Вы можете создать создать структуру каталогов и назвать проект как пожелаете.     Но если вы предпочтете соблюдать структуру и имена как в нашем примере ниже, то вам будет легче повторять все примеры и сравнивать наши данные со своими, если возникнут проблемы.

 

 

4.1                        Создание структуры файлов для проекта

 

Создайте следующую структуру каталогов на диске ‘С:\’:

 

 

Где вы создаете каталог libcurl в C:\project\ и  создаете еще 3 каталога внутри C:\project\ libcurl. Каталог include должен быть точной копией каталога curl-7.9.6\ include, поэтому просто скопируйте его из распакованного ранее архива.

 

Внутри каталога include найдете несколько make-файлов и один подкаталог curl:

 

 

Если пожелаете - можете удалить все make-файлы и оставить только заголовочные файлы:

 

 

В каталог lib нужно скопировать те 2 файла, которые вы скомпоновали в шаге 3, имеются ввиду следующие файлы:

 

·        libcurl.lib

·        libcurl.dll

 

Итак, теперь у вас все заголовочные файлы в C:\project\ libcurl\include\curl и 2 файла в C:\project\ libcurl\lib. Это все что вам необходимо от CURL и сейчас вы можете начать создавать приложение использующее эти файлы.

 

 

 

4.2                        Создание простого Hello World приложения

 

Можете создавать любой тип приложения какой пожелаете, но сейчас мы создадим простое приложение, чтобы показать, как работать с библиотекой CURL.

 

В Visual Studio проследуйте в меню File->New->Projects и выберете Win32ConsoleApplication:

 

 


Назовите проект MyApplication у расположите его в каталоге C:\project\ libcurl\VisualStudio:

 

 

 

Нажмите Ok и, когда перейдете к следующему диалогу, установите переключатель A Hello World AppllicationVisual Studio 7 такого переключателя нет, остальные диалоговые окна, проиллюстрированные в этом руководстве, отличаются только внешним видом и расположением компонентов):

 

 

 

 

Нажмите Finish и Visual Studio создаст все необходимые файлы и подкаталог MyApplication в каталоге C:\project\ libcurl\VisualStudio.

 

Когда все сделано, можете кликнуть мышью на левой панели по «FileView»:

 

 


Найдите главный модуль вашего приложения с именем MyApplication.cpp:

 

 

Двойной щелчок мыши по MyApplication.cpp откроет исходный код приложения:

 

 

Visual Studio старше 6-ой версии строку printf придется добавить самостоятельно, хотя все эти объяснения мне кажутся излишними, поскольку программист, решивший использовать библиотеку CURL, вероятно,  уже не новичок в программировании. прим. переводчика)

 


Нажмите кнопку Build, чтобы скомпилировать и скомпоновать файлы приложения:

 

 

Потом нажмите Run чтобы запустить приложение:

 

 

Зайдите в каталог Debug, который появился в результате наших действи:

 

 

Там можно найти EXE файл вашего приложения (MyApplication.exe):

 


4.3                        Подключение библиотеки CURL к проекту

 

Сейчас, когда наше окружение настроено, мы можем подключить библиотеку CURL к нашему приложению. Проще всего воспользоваться готовым кодом «Hello World», взяв его со страницы сайта:

 

http://curl.haxx.se/libcurl/c/example.html

 

Мы выберем один простой пример (файл simple.c):

 

http://curl.haxx.se/lxr/source/docs/example/simple.c

 

Скопируем следующие строки и заменим ими исходный код нашего Hello World. Заметьте, чтобы мы оставляем строку #includestdafx.h, и для теста используем url-адрес www.cnn.com , чтобы выполнить url-запрос:

 

#includestdafx.h
#include <stdio.h>
#include <curl/curl.h>
 
int main(void)
{
   CURL *curl;
   CURLcode res;
 
   curl = curl_easy_init();
   if(curl) {
     curl_easy_setopt(curl, CURLOPT_URL, "curl.haxx.se");
     res = curl_easy_perform(curl);
 
     /* always cleanup */
     curl_easy_cleanup(curl);
   }
   return 0;
}

 

Перед тем как будет можно приступать к компиляции вам необходимо выполнить несколько шагов, чтобы подключить заголовочные файлы к проекту, а также и dll-файлы.

 

Эти шаги разъясняются ниже.

 

 


4.3.1 Добавление *.h файлов в include-пути

 

 

Проследуйте в меню Tools->Options->Directories->Show directories for Include Files:

 

 

 


Кликните в конце списка, чтобы открыть диалоговое окно и укажите директорию C:\project\libcurl\include. Заметьте, что не нужно указыать C:\project\libcurl\include\curl, где расположены все заголовочные файлы, потому, что в исходном коде указываем #include <curl/curl.h>, следовательно нужно указать родительский каталог:

 

 

 


4.3.2 Добавление libcurl.lib в пути библиотек

 

В выпадающем списке «Show Directories for» измените «Include Files» на «Library Files» и добавьте путь к файлу библиотеки (имеется ввиду libcurl.lib):

 

 

 


4.3.3    Добавление libcurl.lib в список библиотек проекта

 

Теперь вы должны указать в Visual Studio, что нужно использовать libcurl.lib во время компоновки. Сделайте это, проследовав Project->Settings->Link->Category(General) и добавив libcurl.lib в конец списка других библиотечных файлов в поле ввода «Object/library modules», отделив от последнего имени знаком пробела:

 

 

 

 

 

 

 

 

 

 

 

                   


4.3.4    Компилирование программы

 

Теперь вы можете скопмилировать и скомпоновать ваш проект. Нажмите кнопку Build, чтобы скомпоновать приложение вместе с libcurl.lib:

 

 

 

 


4.3.5    Запуск программы

 

Если вы попробуете запустить приложение, нажав на кнопку Run:

 

 

То увидите сообщение об ошибке:

 

 

В котором говорится, что libcurl.dll не была обнаружена в каталогах заданных по умолчанию. Чтобы устранить эту проблему нужно скопировать файл libcurl.dll каталог, где приложение сможет найти его. Вы можете поместить его либо в C:\windows\system32 или же в C:\windows, и т.д. Но если вы не желаете смешивать этот dll-файл с другими такими же файлами системы, то можете поместить его в каталог, где расположен EXE файл вашего приложения:

 

C:\Project\libcurl\VisualStudio\MyApplication\Debug

(в других версиях Visual Studio поместите в каталог вашего проекта. прим. переводчика)

 


Скопировав dll-файл в одну из этих директорий можете снова попробовать запустить приложение и вуаля, оно соединяется с www.cnn.com и делает GET-запрос, т.е. получает страницу целиком и выводит содержимое в консоль:

 

 

 

Примите поздравления: вы создали первое клиентское приложение CURL. Теперь можете расширять его функциональность и исследовать CRUL на других примерах.

Hosted by uCoz