Curl使用的一些demo,记录
1、编译及使用
1.1 编译
1.1.1下载
点击链接下载,也可以使用git clone
到本地
git clone https://github.com/curl/curl.git
1.1.2 编译
- 方法一 VS编译器
如果需要使用vs编译,首先运行 project
目录下的 generate.bat
文件。然后在projects/Windwows
目录下打开对应的解决方案即可
- 方法二 nmake
在下载目录 winbuild
目录下,查看 README.md ,里边告诉了我们如何编译自己需要的包,以我本人使用的为例。
- 打开对应版本的vs命令行工具
- 进入对应的编译目录
curl-src\winbuild
,接着执行以下命令就好。具体的命令参数可以查看winbuild目录下的介绍,选择自己需要的环境就好。
nmake /f Makefile.vc mode=dll vc=15 MACHINE=x86
- 执行以后就能在根目录
build
下看到生成了对应的文件夹,这时候就可以在项目中使用了。注意生成目录下有bin、include、lib
三个文件夹。
1.2 使用
将生成的文件拖动到项目所在文件夹目录下,这时候需要做以下几个步骤,打开项目的属性页面:
1.2.1 预处理器
在预处理器中添加以下字段:
;BUILDING_LIBCURL;HTTP_ONLY;
1.2.2 附加库
-
在链接器中附加库目录,把lib文件夹添加到附加库目录当中
-
添加lib文件
libcurl_a.lib;Ws2_32.lib;Wldap32.lib;winmm.lib;Crypt32.lib;Normaliz.lib;%(AdditionalDependencies)
1.3.3 使用
#include <iostream> #include <string> #include "curl/curl.h" string UriHelper::Encode(const string& source) { CURL* curl = curl_easy_init(); char* cres = curl_easy_escape(curl, source.c_str(), source.length()); string res(cres); curl_free(cres); curl_easy_cleanup(curl); return res; } int main() { std::cout << "Hello World!\n"; std::cout << Encode(R"(https://10.92.4.117:8443/tac /download/client/com.qianxin.trustagent.win.standard.exe.bm-3.1.1.4585/ TrustAgent_standard_3.1.1.4585.aef031d09[10.92.4.117@443].exe)") << std::endl; }
输出:
http0.0000000.0000000.000000www.baidu.com0.000000s0.000000ie%3Dutf-8 0.000000%3D8 %3Dbaidu%26wd%3D5.185438E-3164%B8%B48.694087E-3156%97%B65.190920E-3169%820.000000E5.12199E-31670.000000E%B1
http0.0000000.0000000.000000www.baidu.com0.000000s0.000000ie%3Dutf-8 0.000000%3D8 %3Dbaidu%26wd%3D5.185438E-3164%B8%B48.694087E-3156%97%B65.190920E-3169%820.000000E5.12199E-31670.000000E%B1
本文来自博客园,作者:StimuMing,转载请注明原文链接:https://www.cnblogs.com/fole-del/p/16408676.html
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· 百万级群聊的设计实践
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
· 永远不要相信用户的输入:从 SQL 注入攻防看输入验证的重要性