在VC中调用 WebService

您所在的位置:网站首页 vc调用webservice 在VC中调用 WebService

在VC中调用 WebService

2024-07-16 08:08:23| 来源: 网络整理| 查看: 265

程序示例(非托管)

  由于已经有文章详细讲述了 VC托管程序中调用 WebService 的过程,因此以下示例只描述非托管VC程中调用WebService的方法。

1、新建一个非托管的MFC应用程序,注意是非托管的,如下图(图1)

图1、建立非托管程序完成后,查看VC项目属性,可以确认不使用托管

图2、查看是否使用托管

2、添加WebService引用在VC项目名称上,单击右键,选择“添加Web引用”。如下图(图3):

图3、添加Web引用

在弹出的“添加Web引用”对话框中,填入WebSercie的引用地址, 然后点击“转到按钮”,可以看到WebService的提示页面。

图4、“添加Web引用”对话框

  点击页面上的“Service Description” 链接可以看到具体的WebMethod的声明。我的这个WebService示例中,只定义了一个Web方法。该方法接受一个字符串作为用户名,并返回一个字符串作为对用户的问候语。如下图所示:

图5、查看WebMethod原型

  在上图中填入“Web引用名”,然后点击“添加引用按钮”。(在非托管版的代理类中,这里填的“Web引用名”将没有任保实质性的作用,所以随便填入一个名字即可。但是在托管版的代理类中,“Web引用名”将成为代量类的命名空间) 。接下来,VS.NET将生成一个WebService的代理类,生成完后,会自动打开WebService.h头文件:

WebService.h并不是代理类,这个头文件其实是用于包含所有的代理类的头文件,你可以多添加几个“Web引用”试试。

3、浏览代理类  我们不妨浏览一下生成的代理类,做到有个基本的了解。切换到“类视图”,可以看到一个“Debug”命名空间,全部展开,可以看到生成的代理类的全部成员:

图6、浏览生成的代码

4、调用示例首先包含头文件,并打开命名空间

#include "WebService.h" using namespace Debug; // 这个命名空间是自动生成的,与Web服务的实现有关 以下是调用代码 void CInvokeDemoDlg::OnBnClickedButton1() { // TODO: 在此添加控件通知处理程序代码 // 因为生成的代码是基于ATL的,所以要初始化COM CoInitialize(NULL); HRESULT hr = S_OK; CComBSTR hiResult; CComBSTR username = "vckBase"; CDebug* debug = new CDebug; // 代理对象 // 可以调用SetUrl动态设置Web服务地址 // debug->SetUrl("http://blog.eray.cn/debug.asmx"); hr = debug->Hi(username,&hiResult); //注意,返回值是以指针形式反回的 if(FAILED(hr)) { MessageBox("调用失败"); } else { CString str(hiResult); MessageBox(str,"调用结果"); } delete debug; CoUninitialize(); }   由于生成的代理类是基于ATL的,所以在调用前要初始化COM调用。在上述的代码中就使用了CComBSTR而没有直接使用BSTR,因为CComBSTR属于智能类型,可以自己管理内存分配,比较方便。 上述代码中有一行被注释的代码调用了SetUrl来设置WebService的调用地址。在实际的项目中,可以将这个地址写在配置文件中。 5、运行结果 来,看一下吧~

 


【本文地址】

公司简介

联系我们

今日新闻


点击排行

实验室常用的仪器、试剂和
说到实验室常用到的东西,主要就分为仪器、试剂和耗
不用再找了,全球10大实验
01、赛默飞世尔科技(热电)Thermo Fisher Scientif
三代水柜的量产巅峰T-72坦
作者:寞寒最近,西边闹腾挺大,本来小寞以为忙完这
通风柜跟实验室通风系统有
说到通风柜跟实验室通风,不少人都纠结二者到底是不
集消毒杀菌、烘干收纳为一
厨房是家里细菌较多的地方,潮湿的环境、没有完全密
实验室设备之全钢实验台如
全钢实验台是实验室家具中较为重要的家具之一,很多

推荐新闻


图片新闻

实验室药品柜的特性有哪些
实验室药品柜是实验室家具的重要组成部分之一,主要
小学科学实验中有哪些教学
计算机 计算器 一般 打孔器 打气筒 仪器车 显微镜
实验室各种仪器原理动图讲
1.紫外分光光谱UV分析原理:吸收紫外光能量,引起分
高中化学常见仪器及实验装
1、可加热仪器:2、计量仪器:(1)仪器A的名称:量
微生物操作主要设备和器具
今天盘点一下微生物操作主要设备和器具,别嫌我啰嗦
浅谈通风柜使用基本常识
 众所周知,通风柜功能中最主要的就是排气功能。在

专题文章

    CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭