1、gsoap开发中的记录
gsoap使用时需加入-t type.dat 不然会出现cannot open file ns1.h的错误。
type.dat在gsoap工具包中有。
一般是wsdl2h.exe -o xxx.h -t typemap.h xxx.wsdl
以下就是wsdl2h的选项:
type map文件用于指定SOAP/XML中的类型与C/C++之间的转换规则,比如在wsmap.dat里写
xsd__string = | std::wstring | wchar_t*
那么SOAP/XML中的string将转换成std::wstring或wchar_t*,这样能更好地支持中文。
接着就是讲.h文件生成.cpp文件
soapcpp2.exe接的选项如下
-i选项也要带上,不然不会生成soapXXXXBindingService.cpp和soapXXXXBindingService.h文件
-I 选项一般也要带上,-I 后接gsoap路径中import目录
一般是-I E:\workspace\onvif\gsoap-2.8\gsoap\import;E:\workspace\onvif\gsoap-2.8\gsoap这样的
如:soapcpp2.exe -x -i -S media.h -I E:\workspace\onvif\gsoap-2.8\gsoap\import;E:\workspace\onvif\gsoap-2.8\gsoap
一般会生成如下几个文件:(以media.wsdl为例)
MediaBinding.nsmap
soapC.cpp
soapH.h
soapMediaBindingProxy.cpp
soapMediaBindingProxy.h
soapMediaBindingService.cpp
soapMediaBindingService.h
soapStub.h
据网上所查以上文件的解析如下:
打开soapMediaBindingService.h,会发现里面都是一些虚函数。
在soapMediaBindingService.cpp中我们需要实现这些虚函数:
这是一种实现方法.
后面的内容继续研究。。。。