1. 下载 gsoap_win32_2.7.9f.zip
2. 准备gsoap环境,如下:
E:./gsoap/
│ soapcpp2.exe
│ soapcpp2_for_client.bat
│ soapcpp2_for_server.bat
│ wsdl2h.bat
│ wsdl2h.exe
│
├─import
│ c14n.h
│ dom.h
│ ds.h
│ ds2.h
│ README.txt
│ soap12.h
│ stl.h
│ stldeque.h
│ stllist.h
│ stlset.h
│ stlvector.h
│ WS-example.c
│ WS-example.h
│ WS-Header.h
│ wsa.h
│ wsa3.h
│ wsa4.h
│ wsa5.h
│ wsp.h
│ wsrp.h
│ wsse.h
│ wsse2.h
│ wsu.h
│ xlink.h
│ xmime.h
│ xml.h
│ xmlmime.h
│ xop.h
│
├─input
│ MyService.wsdl
│
├─output
│ │ MyService.h
│ │
│ ├─client_proxy
│ │ MyServiceSoap.HelloWorld.req.xml
│ │ MyServiceSoap.HelloWorld.res.xml
│ │ MyServiceSoap.nsmap
│ │ soapC.cpp
│ │ soapClient.cpp
│ │ soapClientLib.cpp
│ │ soapH.h
│ │ soapMyServiceSoapProxy.h
│ │ soapStub.h
│ │ stdsoap2.cpp
│ │ stdsoap2.h
│ │
│ └─server_proxy
│ MyServiceSoap.HelloWorld.req.xml
│ MyServiceSoap.HelloWorld.res.xml
│ MyServiceSoap.nsmap
│ soapC.cpp
│ soapH.h
│ soapMyServiceSoapObject.h
│ soapServer.cpp
│ soapServerLib.cpp
│ soapStub.h
│ stdsoap2.cpp
│ stdsoap2.h
│
└─stdsoap2
stdsoap2.cpp
stdsoap2.h
3. 用vs.net生成一个webservice, 然后生成MyService.wsdl
4. 根据MyService.wsdl生成.h文件,创建一个批处理文件wsdl2h.bat
wsdl2h.exe -o ./output/MyService.h ./input/MyService.wsdl
5. 生成代理源码,(soapcpp2_for_client.bat)
soapcpp2.exe -C ./output/MyService.h -I import -d ./output/client_proxy
copy ./stdsoap2/*.* ./output/client_proxy
6. 用VC6创建一个dialog project(static mfc)
添加一下文件:
soapC.cpp
soapH.h
soapClient.cpp
soapStub.h
MyServiceSoap.nsmap
soapMyServiceSoapProxy.h
stdsoap2.h
stdsoap2.cpp
7. 在setting|link里设置soapC.cpp,soapClient.cpp ,stdsoap2.cpp不用预编译头文件
8. 添加ws2_32.lib
9.如果出现link错误的话,参考<在 Visual C++ 中以错误的顺序链接 CRT 库和 MFC 库时出现 LNK2005 错误>
比较乱,写给自己的,怕以后忘了,开始以为gsoap是一个lib呢,用过之后才知道,gsoap是一个生成soap代码的工具而已,生成的代码并不需要借助任何第三方的lib,就可以实现soap client和soap server,以后有时间再尝试写一个soap server,这样就可以摆脱.net用c++来写webservice了