c++版curl不解问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c++版curl不解问题相关的知识,希望对你有一定的参考价值。

为什么以上代码是正确的呢?
注意看curl_callback函数最后一个参数custom_ptr
它并不是一个引用参数(string&)?理论上函数return后custom_ptr变量应该会被销毁
可是它却真实的改变了外面htmlresult的结果。
请问这libcurl是怎样调用curl_callback函数实现这种效果的 ?

以下方法用CURL提交表单1.编译环境.安装vs2010或其他版本.vs2010express版也可以。不要低于vc6.2.搜索curl-7.25.0.zip,下载。解压到c:\curl-7.25.0打开VisualStudioCommandPrompt(2010)cd\curl-7.25.0\winbuildnmake/fMakefile.vcmode=dllUSE_SSSPI=noENABLE_IDN=no编译成功后cd..\builds到一个名字为libcurl-.lib的子目录里找到libcurl.dll和libcurl.lib,保存到一个目录下备份,下面要用。3.打开vc++2010,File->Newproject,选Win32Project,输入一个项目名。下面点Next,勾上ConsoleApplication和EmptyProject.4.配置项目到我的文档下找到vs2010projects目录,找到solution名字\项目名字目录,把curl-7.25.0目录下的include目录拷贝到项目目录下把2备份好的libcurl.dll和libcurl.lib拷贝到项目目录.在vc++中右键点击项目名(或Alt+F7),点开ConfigurationProperties,点vc++directories点IncludeDirectories,点Edit,添加$(ProjectDir)include确定在点击左侧的Linker,点Input,点AdditionalDependences,点Edit,添加一行$(ProjectDir)\libcurl.lib确定5.代码。右键点项目名字,AddNewItem->C++File,name写main.c,输入代码:/*抱歉,这里不好贴链接,版权没法贴,版权去看http-post.c*/#include#include#includeintmain(void)CURL*curl;CURLcoderes;curl=curl_easy_init();if(curl)/*FirstsettheURLthatisabouttoreceiveourPOST.ThisURLcanjustaswellbeacurl_easy_setopt(curl,CURLOPT_URL,"这里写网址");/*NowspecifythePOSTdata*/curl_easy_setopt(curl,CURLOPT_POSTFIELDS,"name=daniel&project=curl");/*Performtherequest,reswillgetthereturncode*/res=curl_easy_perform(curl);/*alwayscleanup*/curl_easy_cleanup(curl);system("pause");return0;点vc++绿色的三角编译运行。 参考技术A 你那个curl_callback函数是没法改变 custom_ptr的值的,因为是值传递,函数里用的是原始值的一份拷贝。如果htmlresult的值改变了,那么引起改变的地方应该不是curl_callback这个函数。我看这个curl_callback函数,似乎只要return那句就可以了吧,前两句感觉没什么用啊,对于这个函数而言追问

注意看curl_callback函数return的是custom_ptr的大小,而不是custom_ptr本身
它返回的是个整形哦

追答

不是return size*per_time_size吗?size 和per_time_size在函数体内都没有改变

MVS 社区和 cURL c++

【中文标题】MVS 社区和 cURL c++【英文标题】:MVS Community and cURL c++ 【发布时间】:2016-02-26 16:03:19 【问题描述】:

碰撞

下午好,

我一直在浏览谷歌,寻找一个易于理解的指南,用于为 Visual Studio 社区安装和添加 cURL 的依赖项,但没有真正的进展。

我已将包下载并解压缩到 C:\curl\curl-7.47.1,并使用 winbuild\ (nmake /f Makefile.vc mode=dll) 中的开发人员命令提示符构建它。

问题开始于我尝试查找库并包含我应该添加到 MVS 依赖项中的库。 这三个版本构建没有问题,并添加到 cURL 目录的根目录,但包中没有可添加到我的依赖项的 release\ 或 debug\(lib\ 只有两个 libcurl 文件)。

我尝试使用试错法在测试项目中找到正确的依赖项,但似乎无法摆脱错误(即没有正确的依赖项)。

我不确定这是否与我使用 VS 社区的事实有关,或者我只是在“安装”过程中犯了某种错误,因为我没有找到任何指南似乎对我有帮助,我想我会求助于你们。

cURL 似乎是一个比较常用的库(如果不是最好的 URL 库?)并且应该会经常使用,但我无法找到解决上述问题的方法.

感谢您的帮助,如果您需要更多信息,请告诉我!

【问题讨论】:

【参考方案1】:

这是通过查看 SO 的许多问题之一的(未标记的)答案来解决的。

查看 mtlynch 的回答: Getting LibCurl to work with Visual Studio 2013

【讨论】:

以上是关于c++版curl不解问题的主要内容,如果未能解决你的问题,请参考以下文章

如何在 C++ 中异步执行 curl_multi_perform()?

将 cURL 内容结果保存到 C++ 中的字符串中

MVS 社区和 cURL c++

php curl设置ssl版

如何使用 c++ (curl) 发送电子邮件

C++ cURL - 如何将完整的网页保存到文件中?