gsoap包下载地址:
http://sourceforge.net/projects/gsoap2/files/gSOAP/gSOAP%202.7.16%20stable/gsoap_2.7.16.zip/download
在开发轻量级C/S程序时,有时候服务端会使用别的实现为webservice,然后基于部署在web服务器上,供我们C/C++或其他语言来调用.
C/C++本身并没有直接提供调用webservice的功能,但是有很多开源的开发工具包,我们可以直接下载使用.以上链接就是 gsoap的下载地址
下载之后解压(我是解压在D盘的).然后进入 D:\gsoap-2.7\gsoap\bin,会有 linux386 ,win32 macosx 三个文件夹,我是在windows下开发的,
所以直接进入win32这个目录,这个目下有两个可执行文件 wsdl2h.exe ,soapcpp2.exe ,wsdl2h主要使根据 webservice的地址生成c或者C++
的头文件,该头文件包含wsdl中包含的方法的详细信息,如参数,返回类型等.soapcpp2.exe主要是根据头文件 来生成调用webservice的代码.
具体参数说明如下:
wsdl2h
-o 文件名,指定输出头文件
- -n 名空间前缀 代替默认的ns
- -c 产生纯C代码,否则是C++代码
- -s 不要使用STL代码
- -t 文件名,指定type map文件,默认为typemap.dat
- -e 禁止为enum成员加上名空间前缀
type map文件用于指定SOAP/XML中的类型与C/C++之间的转换规则,比如在wsmap.dat里写
soapcpp2常用选项
- -C 仅生成客户端代码
- -S 仅生成服务器端代码
- -L 不要产生soapClientLib.c和soapServerLib.c文件
- -c 产生纯C代码
- -I 指定import路径
- -x 不要产生XML示例文件
- -i 生成C++包装。
如果windows下出现不支持中文的情况,在wsmap.dat里边加入下列内容:
xsd__string = | std::wstring | wchar_t*
这是数据类型的对应关系,使用stl,会更好的支持中文.