如何解决为什么 curl_easy_cleanup() 会抛出异常?
我刚刚开始学习 libcurl 并遇到了 curl_easy_cleanup() 函数的奇怪行为。该程序的任务是原始的:从站点获取 html 代码并将其放入标准输出中。
#include <cstdio>
#include <clocale>
#include "curl\curl.h"
int main()
{
setlocale(LC_ALL,".utf8"); // deleting this doesn't help
curl_global_init(CURL_GLOBAL_ALL);
CURL* curl = curl_easy_init();
CURLcode res;
if (curl)
{
curl_easy_setopt(curl,CURLOPT_URL,"https://cbr.ru/currency_base/daily/");
res = curl_easy_perform(curl);
if (res != CURLE_OK)
{
printf("Error\n");
}
}
curl_easy_cleanup(curl); // crash
curl_global_cleanup();
return 0;
}
一切顺利,我有正确的输出,但 curl_easy_cleanup 抛出访问冲突异常和程序崩溃。为什么会这样,我该如何解决这个问题?谢谢。
UPD:我使用 Visual Studio 2019 并编译为 C++。我得出的结论是,这个问题是该站点使用 https(而不是 http)。我尝试了几个 http 站点,效果很好。那么我应该如何对待 https 站点?
解决方法
事实证明问题出在错误的安装上。我已经使用 this 指南(通过 vcpkg)重新安装,现在一切正常!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。