Форум программистов, компьютерный форум CyberForum.ru

Работа с CURL - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ std::string::find и кириллица http://www.cyberforum.ru/cpp-beginners/thread943547.html
есть простенький код #include <iostream> // std::cout #include <string> // std::string int main () { std::string str = "привет"; std::cout << str.find("ве"); return 0;
C++ Эксперты обобщенного программирования Прошу подсказать в чем тут ошибка ? Вот часть когда куда указывают ошибки: template < class ArrayList<T>> class Iterator { public: Itrator(ArrayList<T>&); bool hasNext(); T &operator++(); T &operator--(); T &operator()(int); http://www.cyberforum.ru/cpp-beginners/thread943542.html
C++ Неполадки с isalpha
Ниже я привел код самой функции. Суть в том, что я хочу открыть файл и прочитать с него только цифры,английские буквы,разделители и знаки пунктуации.То есть если символ являеться таковым, он заноситься в вектор и будет в дальнейшем использован. Например в файле лежит дальнейшее - rjnjhst jcyjdfkb vtnfk? - все хорошо, но если там лежит строка вида «njkcnjt», то всё,прога вылетает с ошибками,...
знаки после запятой , формат float C++
я вот что делаю: float i = *(float*)0x0000000; приравниваю значение адреса в формате флоат , мне нужно сделать чтобы переменная i равнялась флоату с одним знаком после запятой , не вот так 1.1234567 чтобы равна была, а вот так 1.1 Не хотелось бы услышать ответ - "делением на 10 или на 1000" - уже пробовал , геморно очень , может есть специальные функции или операторы?
C++ Как исправить этот код? http://www.cyberforum.ru/cpp-beginners/thread943504.html
Помогите исправить код. Знаю в чем проблема,но не знаю как решить. В книге дается схожий пример,и там все так же. Суть в том,что в классе задается статическая переменная-член и статическая функция ,которая дает возможность получить доступ к стат. переменной( которая находится в секции private). Но нужно ведь эту переменную инициализировать? Как исправить следующий код? #include <iostream>...
C++ подскажите среду с компилятором под Win64 У меня есть проект на стареньком борланде 6. До недавнего времени мне его возможностей хватало, однако не так давно столкнулся с нехваткой адресного пространства. Пришёл к очевидному выводу, что надо переходить на что-нибудь новенькое. Поставил RAD Studio XE3, но оказалось что под win 64 можно компилировать только из делфи, а в делфи я никогда не работал, а опять переучиваться, честно-говоря,... подробнее

Показать сообщение отдельно
Iamweb
0 / 0 / 0
Регистрация: 27.01.2013
Сообщений: 62
27.08.2013, 23:28  [ТС]     Работа с CURL
Цитата Сообщение от alsav22 Посмотреть сообщение
Разбирайтесь со скачиванием и вот вам инструкция по подключению curl, пробуйте. Будут вопросы - отвечу через час.
После установки среды, проверьте, как она работает. Создайте проект Console Application, скомпилируйте, запустите. Если всё нормально, то подключайте curl. Если нужно только для этого проекта, то делайте всё в настройках проекта 1 скрин (правой кнопкой по имени проекта, Build optons). Если для всех проектов, то в общих настройках компилятора: Settings - Compiler.
2 скрин: здесь прописать путь к папке include библиотеки.
3 скрин: здесь прописать путь к папке lib64 библиотеки.
4.скрин: здесь добавить (через Add) пути к каждой библиотеке в папке lib64 (выделить все и открыть).
Вставить это код, для проверки:

Кликните здесь для просмотра всего текста
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
//подключаем необходимые заголовочные файлы
#include <string>
#include <iostream>
#include "curl/curl.h"
using namespace std;
 
//объявляем буфер, для хранения возможной ошибки, размер определяется в самой библиотеке
static char errorBuffer[CURL_ERROR_SIZE];
 
//объялвяем буфер принимаемых данных
static string buffer;
 
//функция обратного вызова
static int writer(char *data, size_t size, size_t nmemb, string *buffer)
{
  //переменная - результат, по умолчанию нулевая
  int result = 0;
  //проверяем буфер
  if (buffer != NULL)
  {
    //добавляем к буферу строки из data, в количестве nmemb
    buffer->append(data, size * nmemb);
    //вычисляем объем принятых данных
    result = size * nmemb;
  }
  //вовзращаем результат
  return result;
}
 
//главная функция
int main(void)
{
    setlocale(0, "");
    //необходимые CURL объекты
    CURL *curl;
    CURLcode result;
    //инициализируем curl
    curl = curl_easy_init();
    //проверяем результат инициализации
    if (curl)
    {
      //задаем все необходимые опции
      //определяем, куда выводить ошибки
      curl_easy_setopt(curl, CURLOPT_ERRORBUFFER, errorBuffer);
      //задаем опцию - получить страницу по адресу [url]http://cyberforum.ru[/url]
      curl_easy_setopt(curl, CURLOPT_URL, "cyberforum.ru");
      //указываем прокси сервер
      //curl_easy_setopt(curl, CURLOPT_PROXY, "proxy:8080");
      //задаем опцию отображение заголовка страницы
      curl_easy_setopt(curl, CURLOPT_HEADER, 1);
      //указываем функцию обратного вызова для записи получаемых данных
      curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, writer);
      //указываем куда записывать принимаемые данные
      curl_easy_setopt(curl, CURLOPT_WRITEDATA, &buffer);
      //запускаем выполнение задачи
      result = curl_easy_perform(curl);
      //проверяем успешность выполнения операции
      if (result == CURLE_OK)
      //выводим полученные данные на стандартный вывод (консоль)
        cout << buffer << "\n";
      else
        //выводим сообщение об ошибке
        cout << "Ошибка! " << errorBuffer << endl;
  }
  //завершаем сессию
  curl_easy_cleanup(curl);
  return 0;
}


Скомпилировать (пока не запускать). Если всё нормально, то скопировать в папку bin/debug проекта (там, где лежит .exe) dll-ки из папки bin библиотеки. Запустить программу.
что то всеровно вот эту ошибку выдает

||=== hello, Debug ===|
obj\Debug\main.o||In function `main':|
C:\Users\Николай\Desktop\hello\hello\main.cpp|38|undefined reference to `_imp__curl_easy_init'|
C:\Users\Николай\Desktop\hello\hello\main.cpp|44|undefined reference to `_imp__curl_easy_setopt'|
C:\Users\Николай\Desktop\hello\hello\main.cpp|46|undefined reference to `_imp__curl_easy_setopt'|
C:\Users\Николай\Desktop\hello\hello\main.cpp|50|undefined reference to `_imp__curl_easy_setopt'|
C:\Users\Николай\Desktop\hello\hello\main.cpp|52|undefined reference to `_imp__curl_easy_setopt'|
C:\Users\Николай\Desktop\hello\hello\main.cpp|54|undefined reference to `_imp__curl_easy_setopt'|
C:\Users\Николай\Desktop\hello\hello\main.cpp|56|undefined reference to `_imp__curl_easy_perform'|
C:\Users\Николай\Desktop\hello\hello\main.cpp|66|undefined reference to `_imp__curl_easy_cleanup'|
||=== Build finished: 8 errors, 0 warnings (0 minutes, 2 seconds) ===|

Добавлено через 26 минут
Цитата Сообщение от alsav22 Посмотреть сообщение
Iamweb, как там подключение? Получилось?
а вот, у вас в выподаюшем меню selected compiler выбран компилятор mingw64, у меня не имеется токого в списке
 
Текущее время: 03:08. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru