在非托管的c 代码中访问webservice服务-凯发app官方网站

凯发app官方网站-凯发k8官网下载客户端中心 | | 凯发app官方网站-凯发k8官网下载客户端中心
  • 博客访问: 76883
  • 博文数量: 3
  • 博客积分: 913
  • 博客等级: 准尉
  • 技术积分: 100
  • 用 户 组: 普通用户
  • 注册时间: 2005-01-20 18:47
个人简介

~~~~~~~~

文章分类

全部博文(3)

文章存档

2010年(1)

2009年(1)

2008年(1)

相关博文
  • ·
  • ·
  • ·
  • ·
  • ·
  • ·
  • ·
  • ·
  • ·
  • ·

分类: c/c

2010-05-17 02:14:46

最近需要用vs2008开发一个功能,使用非托管的c 代码来访问webservice服务,
由于之前从没使用过webservice技术,因此首先在中搜索相关
文章和代码,找到如下一篇文章:
看了这篇之后,再加上我从网上查的其它资料,现在我把开发的流程详细讲述一编。

1. 第一步需要使用sproxy.exe工具来生成代理类。在vs2008以前的版本,比如vs2005,本身就带有这个命令,但在vs2008版,已经把它给去除了。需要去下载atl_server源代码并编译产生sproxy.exe工具。

2. 为了测试webservice服务,我在网上找了一个提供webservice的网站:
它提供天气预报服务。它的wsdl文件在这个:
把这个文件保存为本地文件,名字叫weatherws.wsdl。为了方便,我假定这个文件和sproxy.exe放在同一个目录下,执行命令

sproxy.exe /wsdl weatherws.wsdl

就会在同目录下生成weatherws.h文件。

3. 打开vs2008,建立一个mfc项目webservice,添加weatherws.h文件到项目的头文件中。项目中设置atl_server的include目录路径。在webservicedlg.cpp文件中添加

#include "weatherws.h"
using namespace weatherws;

4. 这些做完以后,就可以调用webservice服务了,具体请参考附件的代码。



void cwebservicedlg::onbnclickedbutton2()
{
    // todo: 在此添加控件通知处理程序代码

    coinitialize(null);
    hresult hr = s_ok;
    cweatherwst<csoapsocketclientt<>> * m_srv = new cweatherwst<csoapsocketclientt<>>;
    ccombstr citycode = ""; //参数为空默认返回上海的天气情况

    ccombstr userid = "";
    ccombstr * bstrout;
    int size;
    hr = m_srv->getweather(citycode, userid, (bstr * *)&bstrout, &size);
    if(failed(hr))
    {
       messagebox(l"调用失败");
    }
    else
    {
        for (int i = 0; i < size; i)
        {
            m_weather.setsel(-1, -1);
            bstrout[i].append("\r\n");
            m_weather.replacesel((lpctstr)bstrout[i]);
        }
    }
    if (m_srv != null)
        delete m_srv;
    couninitialize();
}


文件:webservice.rar
大小:22kb
下载:


阅读(4008) | 评论(0) | 转发(0) |
0

上一篇:视频测试序列的网址

下一篇:没有了

给主人留下些什么吧!~~
")); function link(t){ var href= $(t).attr('href'); href ="?url=" encodeuricomponent(location.href); $(t).attr('href',href); //setcookie("returnouturl", location.href, 60, "/"); }
网站地图