gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-28 01:08:51 27 4
gpt4 key购买 nike

如标题所述,我正在尝试使用 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/4618101/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com