欢迎来到天天文库
浏览记录
ID:34753826
大小:90.18 KB
页数:5页
时间:2019-03-10
《在非托管的vc2008访问webservice》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、在非托管的c++代码中访问webservice服务最近需要用vs2008开发一个功能,使用非托管的c++代码来访问webservice服务,由于之前从没使用过webservice技术,因此首先在http://www.codeproject.com中搜索相关文章和代码,找到如下一篇文章:http://www.codeproject.com/KB/webservices/Web_Services.aspx看了这篇之后,再加上我从网上查的其它资料,现在我把开发的流程详细讲述一编。1.第一步需要使用spro
2、xy.exe工具来生成代理类。在vs2008以前的版本,比如vs2005,本身就带有这个命令,但在vs2008版,已经把它给去除了。需要去http://atlserver.codeplex.com/下载ATL_Server源代码并编译产生sproxy.exe工具。2.为了测试webservice服务,我在网上找了一个提供webservice的网站:http://webservice.webxml.com.cn/WebServices/WeatherWS.asmx它提供天气预报服务。它的WSDL文件在
3、这个:http://webservice.webxml.com.cn/WebServices/WeatherWS.asmx?WSDL把这个文件保存为本地文件,名字叫WeatherWS.wsdl。为了方便,我假定这个文件和sproxy.exe放在同一个目录下,执行命令sproxy.exe/wsdlWeatherWS.wsdl就会在同目录下生成WeatherWS.h文件。3.打开vs2008,建立一个MFC项目WebService,添加WeatherWS.h文件到项目的头文件中。项目中设置ATL_Ser
4、ver的include目录路径。在WebServiceDlg.cpp文件中添加#include"WeatherWS.h"usingnamespaceWeatherWS;4.这些做完以后,就可以调用webservice服务了,具体请参考附件的代码。voidCWebServiceDlg::OnBnClickedButton2(){ //TODO:在此添加控件通知处理程序代码 CoInitialize(NULL); HRESULThr=S_OK; CWeatherWST5、SocketClientT<>>*m_srv=newCWeatherWST>; CComBSTRcityCode="";//参数为空默认返回上海的天气情况 CComBSTRuserId=""; CComBSTR*bstrOut; intsize;5非托管C++调用WebService李照整理第5页共5页 hr=m_srv->getWeather(cityCode,userId,(BSTR**)&bstrOut,&size); 6、 if(FAILED(hr)) { MessageBox(L"调用失败"); } else { for(inti=0;i7、f(m_srv!=NULL) deletem_srv; CoUninitialize();}下载5非托管C++调用WebService李照整理第5页共5页vc2008访问C#WebService作者:Likwo 来源:博客园 发布时间:2009-09-2317:49 阅读:390次 原文链接 [收藏] 1.首先用C#制作WebService。源码如下using System;using System.Collections.Generic;using System.L8、inq;using System.Web;using System.Web.Services;using System.Web.Services.Protocols;namespace Soap{ [WebService(Namespace = "http://Fantasy/WebServiceDemo/")] [System.Web.Services.Protocols.SoapRpcService] public class Service :
5、SocketClientT<>>*m_srv=newCWeatherWST>; CComBSTRcityCode="";//参数为空默认返回上海的天气情况 CComBSTRuserId=""; CComBSTR*bstrOut; intsize;5非托管C++调用WebService李照整理第5页共5页 hr=m_srv->getWeather(cityCode,userId,(BSTR**)&bstrOut,&size);
6、 if(FAILED(hr)) { MessageBox(L"调用失败"); } else { for(inti=0;i7、f(m_srv!=NULL) deletem_srv; CoUninitialize();}下载5非托管C++调用WebService李照整理第5页共5页vc2008访问C#WebService作者:Likwo 来源:博客园 发布时间:2009-09-2317:49 阅读:390次 原文链接 [收藏] 1.首先用C#制作WebService。源码如下using System;using System.Collections.Generic;using System.L8、inq;using System.Web;using System.Web.Services;using System.Web.Services.Protocols;namespace Soap{ [WebService(Namespace = "http://Fantasy/WebServiceDemo/")] [System.Web.Services.Protocols.SoapRpcService] public class Service :
7、f(m_srv!=NULL) deletem_srv; CoUninitialize();}下载5非托管C++调用WebService李照整理第5页共5页vc2008访问C#WebService作者:Likwo 来源:博客园 发布时间:2009-09-2317:49 阅读:390次 原文链接 [收藏] 1.首先用C#制作WebService。源码如下using System;using System.Collections.Generic;using System.L
8、inq;using System.Web;using System.Web.Services;using System.Web.Services.Protocols;namespace Soap{ [WebService(Namespace = "http://Fantasy/WebServiceDemo/")] [System.Web.Services.Protocols.SoapRpcService] public class Service :
此文档下载收益归作者所有