为何明明很简单的函数声明,用wsdl2h.exe生成后变得很复杂

shakaqrj 2016-03-02 09:31:29
步骤这样:
写一个头文件server.h:
int ns__add(int num1, int num2, int *sum);

用soapcpp2.exe生成相关的文件,其中包含一个ns.wsdl

再用wsdl2h -s -o service.h D:\XXX\ns.wsdl(我也不知道这样对不对 依葫芦画瓢)
结果生成出来的service.h变成了这样


int __ns1__add(
_ns2__add* ns2__add, ///< Input parameter
_ns2__addResponse &ns2__addResponse ///< Output parameter
);
class _ns2__add
{ public:
/// Element "num1" of XSD type xs:int.
int num1 1; ///< Required element.
/// Element "num2" of XSD type xs:int.
int num2 1; ///< Required element.
/// A handle to the soap struct context that manages this instance when instantiated by a context or NULL otherwise (automatically set).
struct soap *soap ;
};
class _ns2__addResponse
{ public:
/// Element "sum" of XSD type xs:int.
int* sum 0; ///< Optional element.
/// A handle to the soap struct context that manages this instance when instantiated by a context or NULL otherwise (automatically set).
struct soap *soap ;
};


为何明明很简单的一个函数,却被包装成这样?如果我用这样的头文件soapcpp2.exe 生成出来的文件肯定和之前用server.h的不一样,最后多半调用不成功吧
是不是我生成头文件的方式有误?
...全文
431 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
Pingo520 2017-03-14
  • 打赏
  • 举报
回复
你只有.h文件,没有实现的cpp文件?实现的cpp函数还要在参数列表里加一个soap* t_soap参数,这个参数传入的是连接参数,包括端口。 可以参考这个http://blog.csdn.net/educast/article/details/12653069
weiyajingjing 2017-03-14
  • 打赏
  • 举报
回复
引用 3 楼 oyljerry 的回复:
因为需要序列化等,所以会生成一些结构数据来进行处理
我改了一下.h文件的编码格式,//gsoap ns service encoding: encoded 改为Literal 。就出现这个情况了,客户端写好,调用,提示SOAP-ENV:Server[no subcode],看论坛说是端口不对应,不知道是啥问题
oyljerry 2017-03-14
  • 打赏
  • 举报
回复
因为需要序列化等,所以会生成一些结构数据来进行处理
Pingo520 2017-03-14
  • 打赏
  • 举报
回复
生成规则就是这样,你没必要纠结这些。你要用别人的东西,就要遵循别人的协议。
weiyajingjing 2017-03-14
  • 打赏
  • 举报
回复
其实这个不影响Java客户端的调用,没有别的影响。比较纠结的是为什么编码方式不一样,用wsdl2h生成的.h文件不一样呢? 其实,我感觉也不用wsdl2生成.h文件,直接用自己定义的.h 就行,直接生成c++客户端代码,完成c++客户端。 还有一点就是发布的时候,.h文件中的localhoust要改成局域网IP
weiyajingjing 2017-03-13
  • 打赏
  • 举报
回复
我也这问题,估计是生存的wsdl文件不能用。不知楼主解决没

16,547

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • AIGC Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧