Я пытаюсь написать приложение Win32, которое использует libcurl для задач http. У меня есть простой пример, который отлично работает на платформах Mac OSx и Ubuntu. Однако, когда я пробую его на Win32, он взрывается.
Я использовал nmake для создания статической библиотеки
nmake / f makefile.vc mode = static
Это создает lib: libcurl_a.lib
Я ссылаюсь на эту библиотеку и добавил это определение к моим определениям препроцессора:
CURL_STATICLIB
Простой пример приложения:
#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, "http://google.com");
res = curl_easy_perform(curl);
/* always cleanup */
curl_easy_cleanup(curl);
}
return 0;
}
Кажется, это компилирует и связывает корректность. Но приложение вылетает при вызове curl_easy_cleanup.
Ошибка:
Поток 'Win32 Thread' (0x1230) вышел с кодом 0 (0x0).
HEAP [cURL_Test.exe]: неверный адрес, указанный для RtlValidateHeap (
00190000, 00A01388) Windows запустила точку останова в
cURL_Test.exe.
Это может быть связано с повреждением кучи, что указывает на ошибку в
cURL_Test.exe или любую из загруженных им библиотек DLL.
Кто-нибудь сталкивался с этой проблемой или, может быть, скажите мне, что я забыл?
Спасибо!