在编译完libcurl的dll和lib后,使用如下
// http.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include <stdio.h>
#include <curl/curl.h>
#pragma comment(lib,"libcurl.lib")
int _tmain(int argc, _TCHAR* argv[])
{
CURL *curl;
CURLcode res;
curl = curl_easy_init();
if(curl) {
curl_easy_setopt(curl, CURLOPT_URL, "http://www.baidu.com");
/* example.com is redirected, so we tell libcurl to follow redirection */
curl_easy_setopt(curl, CURLOPT_FOLLOWLOCATION, 1L);
/* Perform the request, res will get the return code */
res = curl_easy_perform(curl);//此处崩溃
/* Check for errors */
if(res != CURLE_OK)
fprintf(stderr, "curl_easy_perform() failed: %s\n",
curl_easy_strerror(res));
/* always cleanup */
curl_easy_cleanup(curl);
}
getchar();
return 0;
}
当编译的lib和使用的程序的 (属性-配置属性-c/c++-运行库 的设置如:多线程调试 (/MTd))选项不一致时,就会出现如下错误 :
1 调用程序编译出错:>LIBCMTD.lib(dbgheap.obj) : error LNK2005: __CrtSetCheckCount 已经在 MSVCRTD.lib(MSVCR100D.dll) 中定义
2 调用程序调用curl_easy_perform ()程序异常退出