在我的 c++ 项目中,在 Windows 上使用 libcurl 和 Visual Studio 不起作用,因为字符串已损坏

2024-03-25

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

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

我的代码非常简单:

我初始化卷曲: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);

结果,init and set_url返回码为 0 (CURLE_OK),提交的返回码是2(CURLE_URL_MALFORMAT).

当我调试时,我意识到我的 URL 已损坏,而不是http://www.example.com http://www.example.com它成为了:xj:在释放模式和0|:在调试模式下。 我一进去就发生了curl_easy_setopt

URL 字符串肯定已损坏。

我的设置肯定有一个错误,所以这里是我的设置摘要(在调试模式下)

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

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

这就是问题。

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

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在我的 c++ 项目中,在 Windows 上使用 libcurl 和 Visual Studio 不起作用,因为字符串已损坏 的相关文章

  • 何时使用 =default 使析构函数默认?

    尽管对构造函数使用 default 对我来说很清楚 即强制编译器在其他构造函数存在时创建默认构造函数 但我仍然无法理解这两种类型的析构函数之间的区别 那些使用 default 的 那些没有显式定义并由编译器自动生成的 我唯一想到的是 gro
  • 在 Xamarin 中隐藏软键盘

    如何隐藏软键盘以便在聚焦时显示Entry在 Xamarin forms 便携式表单项目中 我假设我们必须为此编写特定于平台的渲染器 但以下内容不起作用 我创建自己的条目子类 public class MyExtendedEntry Entr
  • 读取 C# 中的默认应用程序设置

    我的自定义网格控件有许多应用程序设置 在用户范围内 其中大部分是颜色设置 我有一个表单 用户可以在其中自定义这些颜色 并且我想添加一个用于恢复默认颜色设置的按钮 如何读取默认设置 例如 我有一个名为的用户设置CellBackgroundCo
  • 防止 boost::asio::io_context 在空轮询调用时停止

    此代码调用发布的句柄 boost asio io context ioc boost asio post ioc std cout lt lt lol lt lt std endl ioc poll 而这并没有 boost asio io
  • 类特定的新删除运算符是否必须声明为静态

    标准中是否要求类特定的 new new delete 和 delete 是静态的 我可以让它们成为非静态成员运算符吗 为什么需要它们是静态的 它们被隐式声明为静态 即使您没有键入 static
  • 信号处理程序有单独的堆栈吗?

    信号处理程序是否有单独的堆栈 就像每个线程都有单独的堆栈一样 这是在 Linux C 环境中 来自 Linux 手册页signal 7 http kernel org doc man pages online pages man7 sign
  • 指向特征矩阵的指针数组

    我在代码中使用 Eigen 的 MatrixXd 矩阵 在某个时刻我需要一个 3D 矩阵 由于 Eigen 没有三维矩阵类型 因为它仅针对线性代数进行了优化 因此我创建了一个 MatrixXd 类型的指针数组 Eigen MatrixXd
  • fprintf() 线程安全吗?

    我正在为野人就餐问题的某些变量编写一个 C 解决方案 现在 我创建线程 每个线程都将 FILE 获取到同一个调试文件 在线程内我正在使用 fprintf 进行一些打印 打印的语句不受任何类型的互斥锁等保护 我没有在调试文件中观察到任何交错行
  • 类的成员复制

    在学习 复制成员 概念时 书中给出了如下说法 此外 如果非静态成员是引用 const 或没有复制赋值的用户定义类型 则无法生成默认赋值 我不太明白这个声明到底想传达什么 或者说这个说法指的是哪一种场景 谢谢 该语句与编译器自动为您编写的类
  • 单例模式和 std::unique_ptr

    std unique ptr唯一地控制它指向的对象 因此不使用引用计数 单例确保利用引用计数只能创建一个对象 那么会std unique ptr与单例执行相同 单例确保只有一个实例属于一种类型 A unique ptr确保只有一个智能指针到
  • Visual Studio Code:如何配置 includePath 以获得更好的 IntelliSense 结果

    我是使用 Visual Studio Code 的完全初学者 我不知道我在做什么 我已经四处搜索 也许还不够 但我找不到像我这样的人如何配置的简单解释c cpp properties json每当我单击带有绿色波浪线下划线的行旁边的黄色灯泡
  • std::forward_as_tuple 将参数传递给 2 个构造函数

    我想传递多个参数以便在函数内构造两个对象 以同样的方式std pair
  • C++ php 和静态库

    我创建了一个library a 其中包含 cpp 和 h 文件 其中包含很多类 嵌套类和方法 我想在 php 示例中包含这个静态库并尝试使用它 我想提一下 我是 php 新手 我已经在 test cpp 文件中测试了我的 libray a
  • 检查 RoutedEvent 是否有任何处理程序

    我有一个自定义 Button 类 当单击它时 打开特定窗口 它总是执行相同的操作 我添加了一个可以在按钮的 XAML 中分配的 Click 事件 就像常规按钮一样 当它被单击时 我想执行 Click 事件处理程序 如果已分配 否则我想执行默
  • 如何在标准 WPF ListView 中启用 UI 虚拟化

    我正在使用 NET 4 5 VS2012 并且我有一个 ListView 看起来像这样
  • C# 中的 strstr() 等效项

    我有两个byte 我想找到第二个的第一次出现byte 在第一个byte 或其中的一个范围 我不想使用字符串来提高效率 翻译第一个byte to a string会效率低下 基本上我相信就是这样strstr 在 C 中做 最好的方法是什么 这
  • C++ Streambuf 方法可以抛出异常吗?

    我正在尝试找到一种方法来获取读取或写入流的字符数 即使存在错误并且读 写结束时间较短 该方法也是可靠的 我正在做这样的事情 return stream rdbuf gt sputn buffer buffer size 但如果streamb
  • C++0x中disable_if在哪里?

    Boost 两者都有enable if and disable if 但 C 0x 似乎缺少后者 为什么它被排除在外 C 0x 中是否有元编程工具允许我构建disable if按照enable if 哦 我刚刚注意到std enable i
  • 使我的 COM 程序集调用异步

    我刚刚 赢得 了在当前工作中维护用 C 编码的遗留库的特权 这个dll 公开使用 Uniface 构建的大型遗留系统的方法 除了调用 COM 对象之外别无选择 充当此遗留系统与另一个系统的 API 之间的链接 在某些情况下 使用 WinFo
  • ASP.NET Core MVC 视图组件搜索路径

    在此处的文档中 https learn microsoft com en us aspnet core mvc views view components view aspnetcore 2 2 https learn microsoft

随机推荐

  • 如何检查同一个java程序的两个实例是否正在运行?

    您好 我正在制作一个将通过 javaw exe 运行的程序 因此它不直接可见 现在我的问题是有时 意外地 用户可能会运行同一应用程序的多个实例 例如输入javaw myProgram两次 在这种情况下 如果程序已经在运行 有什么方法可以阻止
  • Bootstrap Popover 一键点击即可工作 - JavaScript

    我有一些引导按钮 单击按钮时应该显示一个弹出窗口 usernameL onclick function e e currentTarget id popover html true 当网站加载并且我第一次单击按钮时 没有任何反应 如果我第二
  • AlamoFire 在后台会话中下载

    我在新应用程序中使用 Alamofire 基于 Alamofire 的下载管理器示例 我需要一些有关使用后台会话下载文件的说明 我需要重写 SessionDelegate 才能使其正常工作吗 要不就backgroundCompletionH
  • NoClassDefFoundError:android.support.v7.widget.helper.ItemTouchHelper$3

    嗨 我想创建滑动删除RecyclerView结果是崩溃 看着那 这build gradle 我导入了所需的所有库 在代码中我可以使用ItemTouchHelper类但是当我想刷一个项目时它崩溃了 build gradle compile c
  • 在 groupby 之后将组与一个数据帧合并

    我试图回答这个问题 https stackoverflow com questions 47117982 insert missing category for each group in pandas dataframe通过组级合并 下面
  • 为什么只有当可执行文件在 Visual Studio 下运行时 CreateFileA 才会失败?

    我写了一个简单的check file ref函数使用 WinAPI 检查两个路径是否引用同一个文件 代码没问题 它是用 C 语言的 Visual Studio 2017 编译的 标志 TC 奇怪的是CreateFileA当可执行文件在 Vi
  • GPIO-Hog声明的目的和用途

    问题 其目的和用例是什么gpio hog宣言 可以从用户空间连接 占用 的 GPIO 引脚吗 如果 占用 GPIO 引脚无法与用户空间交互 那么是否有任何机制可以在 dts 文件中配置 GPIO 引脚以进行用户空间交互 背景 我正在尝试配置
  • 通过在两个现有列上使用 lambda 函数在 Panda 中创建新列

    我可以通过定义用户函数然后使用 apply 在 Panda 中添加新列 但是 我想使用以下方法来做到这一点lambda 有办法吗 例如 df有两列a and b 我想创建一个新专栏c这等于之间的最长长度a and b df pd DataF
  • Swift 结合添加运算符方法,如何使返回值简单、简短,如 Publishers.FlatMap.XX> 到 AnyPublisher

    当我添加一些运算符时 返回值会更长 例如 Publishers FlatMap 令牌 gt AnyPublisher gt 其实我希望用户只需要知道AnyPublisher足够 有什么办法让我只能返回AnyPublisher而不是Publi
  • Android动态功能模块依赖关系

    所以我有几个共享通用代码的功能 让我们称它们为 feature1 和 feature2 我无法将共享代码添加为 feature1 和 feature2 的依赖项 Android studio 抛出以下错误 多个 APK 打包同一库可能会导致
  • 找不到引用 Microsoft.DirectX.AudioVideoPlayback 和 Microsoft.DirectX

    我已经安装了 net 4 0 以及 XNA 4 0 前段时间我用过Microsoft DirectX播放一些音乐 现在当我尝试重做工作时 我找不到参考 平台上的新变化是否修改或移动了参考文献中的某些内容 视觉工作室 2010 右键单击项目
  • 如何使用preparedstatement获取最后插入行的id? [复制]

    这个问题在这里已经有答案了 我使用以下代码将新行插入数据库 我需要获取最后插入行的 id 但是当我运行代码时 它显示以下消息 SEVERE java sql SQLException Generated keys not requested
  • 加载后隐藏微调器

    我想在加载页面后隐藏微调器 我尝试过这个 document ready function loader hide Hide it initially ajaxStart function this show ajaxStop functio
  • 如何将 IsActiveAsync 失败信息传递给用户和客户端?

    In my IdentityServer4我实施的项目IProfileService The IsActiveAsync使用隐式和混合流时 在人类用户通过登录网页成功进行身份验证后 会多次调用该方法 我注意到它被调用时context Cal
  • 结构归纳终止

    我无法让 Agda 的终止检查器接受使用结构归纳定义的函数 我认为 我创建了以下最简单的示例来展示此问题 以下定义size被拒绝 即使它总是在严格较小的组件上递归 module Tree where open import Data Nat
  • DB 或 XML 问题

    XML 似乎是另一种以更小规模存储信息的方式 而DB可以处理所有类型 我有兴趣了解每种方法的优点和缺点 在某个场景中 其中一个更好吗 我确信每个人都有最好的情况 先感谢您 嗯 XML 是任何人都可以读取的文件 因为它是文本 数据库必须通过
  • MFC 控件上的文本 - Unicode 字符(例如日语)被截断

    背景 我正在开发一个 C MFC 应用程序 我们已经将其转换为显示 unicode 字符以支持外语 在大多数情况下 这是成功的并且 unicode 字符显示正确 但我遇到了一个问题 某些控件上的某些文本被截断 Example 在这里 您可以
  • 使用linqpad作为主要查询工具

    我团队的一名成员最近转而使用 LinqPad 作为他的主要查询工具 有时仍然会使用 SQL Studio 其简单目的是迫使自己使用 LINQ 变得更自然 我认为这是一个非常好的主意 并正在考虑要求我的团队的其他成员进行此转换 有人对采取这种
  • 以编程方式唤醒 OSX 上的显示

    我已经设法让显示器立即进入睡眠状态 pmset displaysleepnow 在终端中 但是为了唤醒显示屏 我只找到了 pmset schedule wake 12 24 2009 00 00 00 如果我尝试将任何事情安排得早于从现在起
  • 在我的 c++ 项目中,在 Windows 上使用 libcurl 和 Visual Studio 不起作用,因为字符串已损坏

    正如标题中所解释的 我尝试使用 libcurl C API 提交简单的 http 查询 我使用 Windows 作为操作系统 C 作为语言 Visual Studio 2008 作为 IDE 我的代码非常简单 我初始化卷曲 CURLcode