c++ - 在 Windows 上使用 libcurl,在我的 c++ 项目中,使用 visual studio,因为字符串被损坏而不起作用

标签 c++ visual-studio-2008 curl libcurl

如标题所述,我正在尝试使用 libcurl C API 提交简单的 http 查询。

我使用 Windows 作为操作系统,C++ 作为语言,Visual Studio 2008 作为 IDE。

我的代码非常简单:

我初始化 curl : CURLcode init = curl_global_init(CURL_GLOBAL_ALL);

我初始化句柄: CURL* handle = curl_easy_init();

我设置了网址: CRULcode set_url = curl_easy_setopt(handle, CURLOPT_URL, "http://www.example.com")

我提交我的请求:CURLcode submit = curl_easy_perform(handle);

因此,initset_url返回码为0(CURLE_OK),subimt返回码为2( CURLE_URL_MALFORMAT).

当我调试时,我意识到我的 URL 已损坏,而不是 http://www.example.com它变为:xj: 在 Release模式下和 0|: 在 Debug模式下。 我一输入 curl_easy_setopt

就会发生这种情况

URL 字符串肯定已损坏。

一定是我的设置有误,所以这里是我的设置摘要(在 Debug模式下)

  • 在共享 DLL 中使用 MFC
  • 使用多字节字符集
  • 预处理器包括 CURL_STATICLIB
  • 多线程调试DLL/MDd
  • 使用 vc6curl.dsw 项目链接 libcurld.lib(版本 7.21.3)编译
  • 也链接aggst ws2_32.lib wldap32.lib

最佳答案

“链接 libcurld.lib(版本 7.21.3)使用 vc6curl.dsw 项目编译

这就是问题所在。

静态库必须使用相同的编译器和相同的运行时库 (/MDd) 构建。

您可以使用 DLL 版本的 libcurl 来避免这种情况。

关于c++ - 在 Windows 上使用 libcurl,在我的 c++ 项目中,使用 visual studio,因为字符串被损坏而不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7328879/

相关文章:

c++ - boost::asio::async_receive 和套接字中的 0 个字节

c++ - “Default member initializer needed within definition of enclosing class outside of member functions” - 我的代码格式不正确吗?

c++ - 将对象加载到指向对象的指针数组中

php - 是否可以使用 PHP cURL 获得部分响应?

c++ - 字符串的排列

c++ - 纹理不适用于我的 3d Cube directX

wpf - 为什么我的应用程序窗口在我运行时不显示?

c# - SQLConnection.Open();抛出异常

Curl:这个curl语句涉及到哪些API调用?

php - CURL 和 PHP Geocoder 中的连接在 10000 毫秒后超时