gSOAP 中的动态数组以 C++ 方式使用 STL 向量而不是 __ptr/__size?

2024-01-02

我正在使用 gSOAP 2.8.8 开发 Web 服务。我想发送自定义数据类型的无界序列。我可以通过以下方式实现这个gSOAP 用户指南第 11.11 节 http://www.cs.fsu.edu/~engelen/soapdoc2.html#tth_sEc11.11像这样:

class ns__InnerType {
  std::string someStr;
  int someInt;
};
class VectorOfInnerTypes {
  ns__InnerType* __ptr;
  int __size;
};
void ns__myMethod(VectorOfInnerTypes in, ns__EmptyResponse out);

这效果很好。然而,由于我的程序是用 C++ 编写的,所以我想利用 STL 向量。从我读到的所有内容看来,gSOAP 支持序列化向量。我认为这应该有效:

#import "stlvector.h"
class VectorOfInnerTypes {
  std::vector<ns__InnerType> mylist;
};

soapcpp2 很高兴编译它,并且我能够在调用存根时传递 C++ 向量myMethod。然而,以下是通过网络传输的内容:

<s:Envelope ...>
  <s:Body s:EncodingStyle=...>
    <q1:myMethod xmlns:q1="urn:ns"/>
  </s:Body>
</s:Envelope>

将其与我使用时的网络流量进行比较__ptr/__size:

<SOAP-ENV:Envelope ...>
  <SOAP-ENV:Body ...>
    <ns:myMethod>
      <mylist xsi:type="SOAP-ENC:Array" SOAP-ENC:arrayType="ns:InnerType[3]">
        <item>...</item>
        <item>...</item>
        <item>...</item>
      </mylist>
    </ns:myMethod>
  </SOAP-ENV:Body>
</SOAP-ENV:Envelope>

To get std::vector为了工作,我尝试了以下各种组合:

std::vector<ns__InnerType> mylist;
std::vector<ns__InnerType*> mylist;
std::vector<ns__InnerType>* mylist;
std::vector<ns__InnerType*>* mylist;

与必要的soap_new_std__vectorTemplate... and soap_new_ns__InnerType在客户端准备数据时,但没有任何改进。它拒绝正确序列化。

两者都在工作时(__ptr/__size)并且当它没有(std::vector),调用myMethod返回代码 202,或 HTTP 已接受。

我以及每个在 C++ 程序中使用 gSOAP 的人如何使用 STL 向量而不是原语__ptr/__size方式?任何帮助将非常感激。


None

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

gSOAP 中的动态数组以 C++ 方式使用 STL 向量而不是 __ptr/__size? 的相关文章

  • C# 中两种不同类型的列表

    我目前在为客户提供购物车时遇到问题 他希望能够在 CartItems 之间添加文本 所以我想知道是否有某种方法仍然只有一个列表 我的解决方案是有两个列表 其中一个是 IList 类型 在计算购物车的重量和总体价格时会迭代 而另一个 ILis
  • TFS API - 缓慢的 foreach 变更集迭代

    问题背景 我正在使用 TFS api 查询 TFS 服务器上的大范围 1 600 文件 我从每个文件中收集其所有 ChangesetId 然后将其收集在列表中 代码 这是我正在使用的代码 它可以正确生成 QueryHistory 方法中指定
  • 在 C# 中转换 VbScript 函数(Right、Len、IsNumeric、CInt)

    同样 我在 VbScript 中得到了以下代码 您能建议一下 C 中的等效代码吗 Function GetNavID Title getNavID UCase Left Title InStr Title 1 End Function 我已
  • 了解 VerQueryValue

    在 MSDN 上 我注意到 VerQueryValue 函数的以下内容 lplp缓冲区 输出 低电压空洞当此方法返回时 包含指向 pBlock 指向的缓冲区中所请求版本信息的指针的地址 当关联的 pBlock 内存被释放时 lplpBuff
  • C 语言中的套接字如何工作?

    我对 C 中的套接字编程有点困惑 You create a socket bind it to an interface and an IP address and get it to listen I found a couple of
  • 枚举 EMF 时丢失文本

    我在列举发票 emf http www mediafire com kdjwvvo7odyvwa6并将其复制到另一个但文本丢失了 令人惊讶的是 当我将其输出到窗口时 它绘制得非常完美 int CALLBACK EnhMetaFileProc
  • 使用 strcpy 从整数生成指针,无需进行强制转换

    我不明白我做错了什么 我正在学习 C 很抱歉 如果这显然是错误的 但我正在尝试使用uthash http uthash sourceforge net 制作股票及其价格的哈希图 但是当我将股票添加到哈希映射时 我收到上述错误 我所做的就是从
  • 确保 unsigned int/long 始终在 C# 中的检查上下文中执行

    有没有人觉得奇怪 uint 和 ulong 的默认上下文是未检查的 而不是检查的 因为它们旨在表示永远不能为负的值 因此 如果某些代码试图违反该约束 在我看来 自然且首选的行为是抛出异常 而不是返回最大值 这很容易使重要数据处于无效状态并且
  • .NET:EventHandler 竞争条件修复如何工作?

    以下模式用于在引发事件时避免竞争条件 以防另一个线程取消订阅 MyEvent 使其为空 class MyClass public event EventHandler MyEvent public void F EventHandler h
  • 从 C++ 中的函数返回二维数组[重复]

    这个问题在这里已经有答案了 可能的重复 C 从函数返回多维数组 https stackoverflow com questions 3716595 c returning multidimension array from function
  • 如何有效地左填充字节数组

    假设我有一个数组 LogoDataBy byte 0x00000008 0x00000000 0x41 0x00000001 0x42 0x00000002 0x43 0x00000003 0x44 0x00000004 0x31 0x00
  • 获取不带波形符的泛型类名称[重复]

    这个问题在这里已经有答案了 我正在尝试获取类型名称T使用这个 typeof T Name 班级名称是ConfigSettings 而不是返回ConfigSettings它正在返回ConfigSettings 1 有什么具体原因吗 我怎样才能
  • MouseDoubleClick 事件不会冒泡

    我的场景经过简化 我有一个包含员工行的 ListView 在每个员工行中 都有 增加 和 减少 按钮来调整他的工资 假设在我的程序中 双击 员工 行意味着 解雇此人 The problem是当我快速单击 增加 时 这会触发 ListView
  • 会员提供商使用还是不使用?

    我正在开发一个使用 Facebook 的网站 现在为了管理用户我想使用MembershipProvider并选择开发一个定制的会员提供商 我的问题是我的数据库架构与标准成员资格架构不匹配 并且提供的用于覆盖的函数采用与我预期不同的参数 例如
  • 使用 OpenSSL 库在 C++ 中生成 SHA 哈希值

    如何使用以下命令生成 SHA1 或 SHA2 哈希值OpenSSL https openssl org图书馆 我搜索了谷歌 找不到任何函数或示例代码 从命令行来看 很简单 printf compute sha1 openssl sha1 您
  • C# 的 user32 和内核方法列表 [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 有没有一个很好的清单来说明我们可以从中进口什么user32 dll and kernel dll并在 C 中使用 我是 Windows A
  • 如何查明我的字符串是否包含“micro”Unicode 字符?

    我有一个包含实验室数据的 Excel 电子表格 如下所示 g L ppb 我想测试希腊字母 是否存在 如果发现我需要做一些特别的事情 通常 我会写这样的东西 if cell StartsWith matchSequence lt unive
  • 如何重写(重新实现)QFileSystemModel 中的成员函数

    我已经为此苦苦挣扎了一段时间 Qt s QFileSystemModel由于图标获取算法非常糟糕 在获取数百个文件时速度非常慢 我想完全禁用图标 它们被提取到QFileSystemModel data方法不是虚拟的 QFileSystemM
  • 我可以创建一个 List> 吗?

    我正在尝试创建一个列表WeakReference使用 4 5 泛型实现 这样我就可以避免类型检查和转换WeakReference目标 但 WeakReference
  • 如何将 IDispatch* 放入托管代码中

    我一直在考虑尝试使用 C 编写一个实现 OPOS 服务对象的 COM 对象 我已经使用自动化和 MFC 在 C 中完成了它 这并不太困难 所以我坚持尝试将其转换为一种方法 我将排除界面中的其他方法 因为它们很简单 或者我希望如此 id 6

随机推荐

  • PHPExcel:如何设置单元格的日期格式

    我需要将日期保存到 Excel 文件 它必须以 dd mm yyyy 格式 或用户的本地日期格式 输出 并被视为日期 以便其中的一列可以正确排序 这是代码
  • 如何捕获另一个进程的未处理异常?

    我想修改或仅加载 NET 可执行文件 然后处理其未处理的异常 我的目标是制作一个可以发送堆栈跟踪的智能处理程序 假设另一个可执行文件是 NET 应用程序 将其加载到新的AppDomain http msdn microsoft com en
  • Selenium 2.50 不适用于 Firefox 45

    我在使用 Firefox 和 webdriver 时遇到错误 45000 毫秒后无法通过端口 7055 连接到主机 127 0 0 1 火狐版本 45 0 硒 2 50 1 Windows 10 64 位 有没有人遇到类似的问题或知道解决方
  • 实施的标签系统中的错误

    我按照 Hartl 的教程制作了一个带有标记系统的 ToDoList 也借助了这个单词指南 https medium com sherzelsmith add a filtering multiple tag system with aut
  • C# - SSL 与 Websphere MQ 版本 7.0.1

    使用 C 连接到启用 SSL 的队列管理器时 需要设置哪些值才能使队列正常工作 我目前收到此错误 原因代码 2393 MQRC SSL INITIALIZATION ERROR 在我的代码中 我设置 MQEnvironment SSLKey
  • 结帐页面上的返回购物车按钮

    有什么解决方案可以显示 返回购物车 WooCommerce 结帐页面上的按钮 实际上只有一个完整的订单按钮 但是如果用户想要更正他的订单 我们需要一个后退按钮 Thanks 是的 可以在结帐页面上使用 返回购物车 按钮显示自定义通知 这是自
  • Powershell / VSTS 构建 - 独立存储凭据/与用户运行脚本无关

    我正在尝试为构建创建一个脚本 用于签出文件 编辑文件并将其重新签入 我希望它在作为开发人员或构建代理运行时能够工作 我有一个类似的解决方案this https stackoverflow com a 25455769 852806 密码存储
  • 将大型本地数据库与服务器数据库同步(MySQL)

    我需要每周将大型 3GB 40 表 本地 MySQL 数据库同步到服务器数据库 这两个数据库完全相同 本地数据库不断更新 大约每周服务器数据库都需要使用本地数据更新 您可以将其称为 镜像数据库 或 主 主 但我不确定这是否正确 目前数据库仅
  • 编辑 swf 文件中的动作脚本

    我已经尝试了 10 个小时来编辑这个 swf 文件 它看起来与反编译器中的预期完全一样 但是当我将其导出到闪存时 它是一个空白画布 并且我无法访问操作脚本 我想做的只是在动作脚本中编辑一些东西 我什至不碰电影 有没有更简单的方法来做到这一点
  • Android Studio,logcat 在应用程序关闭后清理

    自从 Android Studio 更新 1 2 Beta 以来 我的 logcat 遇到了问题 当我运行我的应用程序时 它会像平常一样记录所有内容 然后我的应用程序崩溃了 应用程序说 不幸的是 游戏已停止 几秒钟后 Android 会关闭
  • 使用 Jquery 更改页面标题

    如何进行动态变化
  • trac-admin /path/to/myproject initenv

    我的 Trac 有问题 我无法创建新项目 在这里 在 path to myproject 中 我应该写什么来代替它 事实上 我的项目路径是 C Users Programmer BitNami Trac Stack 项目 每次它在 BitN
  • C# 析构函数的使用示例

    我正在阅读有关 C 中的析构函数的内容 但我无法为其找到合适的用例 有人可以提供一个用法示例并进行解释吗 非常非常感谢 Update书中的代码示例实现了 Destructor 和 Dispose 方法 请参阅书中的代码片段 class My
  • Pandas 按索引计数分组和排序

    假设我有这个数据框 d Path abc abc ghi ghi jkl jkl Detail foo bar bar foo foo foo Program prog1 prog1 prog1 prog2 prog3 prog3 Valu
  • Spark union 因嵌套 JSON 数据帧而失败

    我有以下两个 JSON 文件 name Agent1 age 32 details d1 1 d2 2 name Agent2 age 42 details 我带着火花读了它们 val jsonDf1 spark read json pat
  • GWT + Google 地图 API v3

    我的 GWT 项目中需要 Google Maps API v3 调用 更具体地说 是 Google 地图和 DirectionServices 等地点的自动完成功能 我们已经尝试了 2 种方法来获取 v3 访问权限 但没有一种方法令人满意
  • 在 .NET 正则表达式中,将零宽度正前瞻断言与其他搜索项相结合

    我需要解析一个具有多行标题 任意数量的多行详细信息和多行页脚的文件 每个细节都以一个模式开始 页脚也以一个模式开始 假设每个细节都以 detail 开头 页脚以 footer 开头 我可以通过以下方式成功找到每个细节 s detail de
  • 内插弧度角?

    如果给定的起始角度为 1 0f 结束角度为 6 0f 那么我真正想要插值的不是 1 和 6 之间的 5 而是较小的部分 这将导致逆时针插补 插值时如何考虑这一点 本质上 当给定从 0 到 6 283 的 2 个弧度角时 我如何知道是否应该根
  • 调试时编辑 C#

    我知道我以前处理过这个问题 但覆盖这个问题的设置似乎总是在变化 我在 Visual Studio 2008 中有一个 C 项目 当我调试时 VS 不允许我编辑代码 我不想编辑并继续 我只想为我的下一个版本进行更改 编辑并继续被禁用 当我在调
  • gSOAP 中的动态数组以 C++ 方式使用 STL 向量而不是 __ptr/__size?

    我正在使用 gSOAP 2 8 8 开发 Web 服务 我想发送自定义数据类型的无界序列 我可以通过以下方式实现这个gSOAP 用户指南第 11 11 节 http www cs fsu edu engelen soapdoc2 html