Как использовать CURL в приложении windows form C++

218
28 января 2019, 13:40

Пытаюсь работать с библиотекой С++ curl в проекте windows form C++

 CURL *curl;
    CURLcode result;
    //инициализируем curl
    curl = curl_easy_init(); 

На строчке curl = curl_easy_init(); начинаются ошибки, как будто не подключён lib. В windows form как то иначе подключаются lib компоненты? Подключал через программу и настройки проекта не помогло. visual studio 2010 C++/

1>CurlFormTest.obj : error LNK2031: не удалось создать P или Invoke для "extern "C" enum CURLcode __clrcall curl_global_init(long)" (?curl_global_init@@$$J0YM?AW4CURLcode@@J@Z); в метаданных отсутствует соглашение о вызовах

1>CurlFormTest.obj : error LNK2028: ссылка на неразрешенную лексему (0A00001A) "extern "C" enum CURLcode __clrcall curl_global_init(long)" (?curl_global_init@@$$J0YM?AW4CURLcode@@J@Z) в функции "int __clrcall main(cli::array^)" (?main@@$$HYMHP$01AP$AAVString@System@@@Z)

Когда ответили на мой вопрос всё получилось, но когда снова столкнулся с такой проблемой забыл как исправить и почитал вновь ответ сложно было найти нужную настройку потому решил для себя и других сделать графическую подсказку, вот. После настройки curl работает. Внимание для Debug и Ralase Наставать нужно отдельно. По моему лучше сразу выбрать realase

Answer 1

В проектах С++/CLI, компилируемых с параметром /clr:pure или /clr:safe соглашение вызова по умолчанию - clrcall, а не cdecl. Поэтому библиотеки, у которых в заголовочных файлах в объявлении функций не прописано явно соглашение вызова (но подразумевается cdecl), не заработают. Вам нужно либо компилировать с параметром /clr (без pure/safe), либо задекларировать все нужные функции CURL вручную.

См. Linker Tools Error LNK2031

READ ALSO
Разделить одну строку на две

Разделить одну строку на две

Дана строка, в которой записаны две последовательности символов через пробелНужно разделить их на 2 отдельные строки, пробел удалить

269
Нужно вычислить сумму с помощью циклa for

Нужно вычислить сумму с помощью циклa for

задано натуральное число n, нужно вычислить сумму S = (-1)^n * (n+1)/(2n+1) с помощью циклa for

219
Многопоточность в С++. В чем отличие pthread от std::thread?

Многопоточность в С++. В чем отличие pthread от std::thread?

В чем основные отличия posix threads и класса std::thread? В каком случае что выбрать и почему? Желательно, поподробнее

229
Умножение матриц по Винограду

Умножение матриц по Винограду

Пытаюсь сделать умножение матриц по Винограду, но как-то не очень получаетсяПрошу помощи у вас

261