webservice的服务器是c#写的,现在要用c++访问此webservice.有以下方法:
1,托管c++,缺点猜想,部署项目的时候需要包含.net库,讨厌这种拖泥带水的。
2,用c#访问webservice,重新包装一个接口,生成dll, 供c++使用;缺点,还是需要公共语言运行库支持,也即托管c++
3, 用gsoap
开发步骤:
1,安装gsoap win32版本。官网是http://gsoap2.sourceforge.net/
2,利用gsoap的bin目录下的两个可执行文件+webservice的wsdl生成一些文,c++直接调用就okay了。
有两种方法:利用soap,利用代理类
我这里用的soap。
wsdl2h常用选项
- -o 文件名,指定输出头文件
- -n 名空间前缀 代替默认的ns
- -c 产生纯C代码,否则是C++代码
- -s 不要使用STL代码
- -t 文件名,指定type map文件,默认为typemap.dat
- -e 禁止为enum成员加上名空间前缀
soapcpp2.exe 的使用: