簡體   English   中英

使用Libcurl作為Win32 DLL C ++

[英]Using Libcurl as a Win32 DLL C++

我想創建一個在C ++中使用libcurl的win32 DLL。 我可以運行curl初始化和轉義,但不能執行CURLOPT_URL。 這是我的代碼:

EXPORT_VBNET char *MyExported( char *a, char *b){  
      const char* success = "executed!";
      const char* failed = "error!";
      char * result;
      result = new char[strlen(failed) + 1];
      strcpy(result, failed);
      CURL *curl = curl_easy_init();
      if(curl) {
              curl_easy_setopt(curl, CURLOPT_URL, "http://127.0.0.1/"); // ERROR Debug Assertion Failed!
              curl_easy_perform(curl);
              result = new char[strlen(success) + 1];
              strcpy(result, success);
       }
       return result;}

我的代碼可以編譯,但是當我調用dll時,出現錯誤“調試聲明失敗!”。 那我該怎么做才能修復我的代碼,這是什么意思呢?

如果有人回答,我將不勝感激。 因為我花了很多時間來研究這個問題。 :)

您應該從Win32 DLL內部而不是從VB.NET層調用curl_global_init(CURL_GLOBAL_DEFAULT)。 另外,將所有libcurl api調用(例如curl_easy_cleanup()等)封裝在Win32 DLL本身中。 從API設計的角度來看,您可以將用於初始化,清理等的單獨方法導出到VB.NET層。

是的,@ Asesh是正確的,但是Curl_global_init與我的代碼中的問題無關。 問題出在我的運行時庫中,看到此鏈接后

https://curl.haxx.se/mail/lib-2011-10/0085.html 我已經解決了我的問題。

我需要更換

C:\\ libcurl中\\建立\\的libcurl-VC10-x86的發布靜態的IPv6-SSPI-winssl

C:\\ libcurl \\ builds \\ libcurl-vc10-x86-debug-static-ipv6-sspi-winssl (包含&Lib目錄)

Libcurl_a.liblibcurl_a_debug.lib。

使用運行時庫/ MDd。

最后:)。

暫無
暫無

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

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