我们正在将我们的gsoap版本从2.7.8升级到最新版本2.8.33
当我们的make文件使用完全相同的标志运行soapcpp2.exe和wsdl2h.exe时,我没有得到完全相同的类和API,所以我想我必须稍微调整一下
我们曾经使用这些标志运行soapcpp2.exe:-C -L -x -I
第一个值得注意的变化是从结构肥皂继承而不是指向它们的类。通过添加-j。
,我能够解决这个可塑性问题现在,我遇到了另一个函数
的不可编程性SOAP_FMAC5 int SOAP_FMAC6 soap_serve_request(struct soap *soap)
缺席。
我搜索了gsoap代码并找到了它,所以我想有一些方法可以让gsoap生成它。有没有办法让gsoap生成这个函数,或者我必须自己调整代码/编写函数
答案 0 :(得分:1)
gsoap工具具有支持向后兼容性的选项。运行soapcpp2 -h以查看您的选项:
Usage: soapcpp2 [-0|-1|-2] [-C|-S] [-T] [-Ecdt] [-L] [-a] [-A] [-b] [-c|-c++|-c++11] [-d path] [-e] [-f N] [-h] [-i] [-I path:path:...] [-l] [-m] [-n] [-p name] [-Q name] [-q name] [-r] [-s] [-t] [-u] [-v] [-w] [-x] [-y] [-z#] [infile]
...
...
-z1 compatibility: generate old-style C++ service proxies and objects
-z2 compatibility with 2.7.x: omit XML output for NULL pointers
-z3 compatibility with 2.8.30 and earlier: _param_N is indexed globally
尝试-z1
。
PS。选项-z1
的旧代理和服务类更简单,使用选项-j
生成的新类是一种改进。但是,当您使用-j
生成服务类时,具有全局函数的类似C的API已经消失(IMO是一件好事)。