簡體   English   中英

為什么 curl_easy_cleanup() 會拋出異常?

[英]Why does curl_easy_cleanup() throw an exception?

我剛剛開始研究libcurl ,遇到了curl_easy_cleanup() function 的奇怪行為。 該程序的任務是原始的:從站點獲取 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;
}

一切順利,我有正確的 output,但curl_easy_cleanup拋出訪問沖突異常和程序崩潰。 為什么它會這樣做,我該如何解決這個問題? 謝謝。


UPD:我使用 Visual Studio 2019 並編譯為 C++。 我得出的結論是,這個問題是該站點使用 https(不是 http)。 我嘗試了幾個 http 站點,效果很好。 那么我應該如何對待 https 站點呢?

事實證明,問題出在安裝錯誤。 我已使用指南(通過 vcpkg)重新安裝,現在一切正常!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM