[英]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.lib到libcurl_a_debug.lib。
使用運行時庫/ MDd。
最后:)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.