http://sourceforge.net/projects/gsoap2 下载最新的gSoap
在其目录下找到VisualStudio2005 可以直接在Windows环境下编译该文件
阅读readme.txt 需要安装bison和flex 两个编译软件。
分别在以下两个链接中下载。
http://gnuwin32.sourceforge.net/packages/bison.htm
http://gnuwin32.sourceforge.net/packages/flex.htm
安装时候注意目录中不要含有空格,我最开始安装的时候安装在 C:\Program Files (x86)\GnuWin32 目录下结果,在vs编译的时候,指定的目录识别有问题,最后卸载重新安装到 C:\GnuWin32 中便没有问题了。
分别编译 soapcpp2 和 wsdl2h 两个工程。
首先是 soapcpp2 :
打开项目便提示错误:
解决办法:
下载下面文件
http://download.microsoft.com/download/3/f/9/3f9f31b7-61a4-4dd6-9170-36d5b1d9356c/vccustombr.exe
安装,然后把FlexBison.rules文件拷贝到 gsoap/VisualStudio2005/soapcpp2 目录下面
用记事本打开gsoap/VisualStudio2005/soapcpp2/soapcpp2/soapcpp2.vcproj
把里面的
"RelativePath="../../../../../../../MSDN/Sample/VC++/vccustombr/FlexBison.rules"
替换成
"RelativePath="./FlexBison.rules"
好了,现在再打开soapcpp2.vcproj文件,可以打开了 。
在编译的时候会遇到问题,因为编译时候,soapcpp2_lex.l 和 soapcpp2_yacc.y 的时候,会用到flex.exe 和 bison.exe。
所有需要将安装的 bison和flex 设置下链接。
这样就编译没有问题了。
编译 wsdl2h 工程,没有什么问题,可以直接编译。
找到生成的soapcpp2.exe 和 wsdl2h.exe 。
下面开始 编写个客户端跟Web Service 服务端通信。
ClientPlaceService.wsdl 服务端 wsdl 的内容如下
链接的服务器的地址为:
http://192.168.18.129:8080/DwPadWS/ClientPlacePort?wsdl
这样我们做一个test_xm文件夹 开始写测试程序吧。
将soapcpp2.exe 和 wsdl2h.exe 拷贝到 test_xm 目录下。
运行cmd 命令行。
wsdl2h -o DwPadWS.h http://192.168.18.129:8080/DwPadWS/ClientPlacePort?wsdl
soapcpp2 -i -C -x DwPadWS.h -I ..\gsoap\import
命令选项注释:
-i 直接使用C++包装类 -x 不要生成一堆看了就恶心的xml -C 只生成客户端相关代码 -I 指定import路径
此时生成 如下
用vs创建工程 test,为了方便建一个命令行的工程
将上面的 所有文件(不包括exe文件)、以及gsoap目录下的stdsoap2.h和stdsoap2.cpp文件拷贝工程目录下,并加到工程中。


