其实呢curl是真的大哥库啊,什么库都没这么麻烦
我们先新建一个项目哈,不同VS版本可能建的方式不一样,大家多百度一下吧。

点击下一步

点击完成。。。。

进来以后不要慌着添加代码,首先把debug换成release ,因为debug是调试版,release是发布版,代码优化做的更好,这个库接近30MB,有点大,用debug容易崩溃

然后添加源文件,一点问题都没有。

写入代码
#include <iostream>
#include <stdio.h>
#include "curl/curl.h"
using namespace std;
static size_t downloadCallback(void *buffer, size_t sz, size_t nmemb, void *writer)
{
string* psResponse = (string*)writer;
size_t size = sz * nmemb;
psResponse->append((char*)buffer, size);
return sz * nmemb;
}
int main()
{
system("chcp 65001");//很多时候,中文乱码,加上就行了
string strUrl = "http://www.anyuer.club";
string strTmpStr;
CURL *curl = curl_easy_init();
curl_easy_setopt(curl, CURLOPT_URL, strUrl.c_str());
curl_easy_setopt(curl, CURLOPT_NOSIGNAL, 1);//设置为1 curl不会发送任何安装处理信号到线程中去,不理解就认为是不会让系统就崩溃就行,不过我试了很多参数好像不仅仅可以写1 1 -100好像都可以
curl_easy_setopt(curl, CURLOPT_TIMEOUT, 2L);//设置超时时间为两秒
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, downloadCallback);//调用回调函数
curl_easy_setopt(curl, CURLOPT_WRITEDATA, &strTmpStr);//将数据写入到存储变量中去
CURLcode res = curl_easy_perform(curl);
curl_easy_cleanup(curl);
string strRsp;
if (res != CURLE_OK)
{
strRsp = "error";
}
else
{
strRsp = strTmpStr;
}
printf("strRsp is |%s|\n", strRsp.c_str());
while (1);
return 0;
}
会报错,那肯定啊,这样就算导入了源码的话,那我还出一篇帖子?????
点击 项目→属性

配置属性→C/C++→常规→附加包含目录 ,如果你是按照我上一篇帖子的解压路径,那就是输入D:\curl-7.65.3\builds\libcurl-vc12-x86-release-static-ipv6-sspi-winssl\include
如果是其他路径的话,就自己换一下吧。

配置属性→C/C++→预处理器→预处理器定义 添加CURL_STATICLIB

配置属性→链接器→常规→附加库目录,如果你是按照我上一篇帖子的解压路径,那就是输入D:\curl-7.65.3\builds\libcurl-vc12-x86-release-static-ipv6-sspi-winssl\lib
如果是其他路径的话,就自己换一下吧。

配置属性→链接器→输入→附加依赖项 添加libcurl_a.lib;Ws2_32.lib;Wldap32.lib;winmm.lib;Crypt32.lib;Normaliz.lib;

好了好了,终于安装好了开心了吧,按下F5 运行调试一番结果如图所示

发表评论: