VC编程之VC 2010 使用GSOAP调用C#写的WEBSERVICE
小标 2018-08-15 来源 : 阅读 1038 评论 0

摘要:本文主要向大家介绍了VC编程之VC 2010 使用GSOAP调用C#写的WEBSERVICE,通过具体的内容向大家展示,希望对大家学习VC编程有所帮助。

本文主要向大家介绍了VC编程之VC 2010 使用GSOAP调用C#写的WEBSERVICE,通过具体的内容向大家展示,希望对大家学习VC编程有所帮助。

一、环境:
1、VS2010 sp1
2、GSOAP 2.8.11 , 
3、WIN8 IIS

二、实现
用C#写个WEB SERVICE发布到本机,应用程序名为SRV
 
gsoap主要的应用程序分为两个:wsdl2h和soapcpp2。
wsdl2h是将wsdl定义转换成.h文件的工具。主要有一些选项:
-c代表转化成C代码。
-s代表不使用STL,取而代之需要在工程中包含stdsoap2.h和stdsoap2.cpp。这些在安装的源码中都可以找到。
-o file代表指定输出文件名称。
通常情况下使用命令wsdl2h –s xxx.wsdl即可生成想要的.h文件。

在这里我使用的命令是:
 
意思是使用定义模板typemap.dat,并且不使用STL生成testClient.h
typemap.dat是GSOAP自带的复制过来增加了以下内容
xsd__string = | wchar_t*
因为默认GSOAP生成的C++代码都是ANSI的,而C#默认是用UTF的,所以最好转换成wchar_t这样兼容性好些,避免中文乱码。

然后是要生成WEBSERVICE调用代码
没有特殊选项的情况下,gsoap不需要依赖其他的链接库。soapcpp2的主要选项有:
-S代表生成客户端代码。
-C代表生成服务端代码。
-L代表不生成soapClientLib/soapServerLib
-c代表仅生成c代码
-i代表使用Proxy
-x 不生成xml文件

我使用的是命令是:
 
OK,现在可以把调用代码COPY到VC2010项目里测试效果了。
总共需要把这么多文件COPY过去

因为我们没有使用STL,所以需要包含stdsoap2.h和stdsoap2.cpp,这两个文件在GSOAP里可以找到。

设置以上新加的所有.cpp文件不要使用预编译头
 
最后调用代码
要先
[cpp] 
#include "soapSrvSoapProxy.h" 
#include "srvsoap.nsmap" 
[cpp] 
  const char* server="//localhost/srv/srv.asmx"; 
    SrvSoapProxy ss(server,SOAP_C_UTFSTRING); 
     
 
 
 _tempuri__HelloWorld hw; 
 _tempuri__HelloWorldResponse hwp; 
 
 if(ss.HelloWorld(&hw,&hwp)==SOAP_OK) 
{ 
     
    AfxMessageBox(hwp.HelloWorldResult); 
} 
else 
    AfxMessageBox(L"error");     

本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注职坐标编程语言VC/MFC频道!

本文由 @小标 发布于职坐标。未经许可,禁止转载。
喜欢 | 0 不喜欢 | 0
看完这篇文章有何感觉?已经有0人表态,0%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式AI+学习就业服务平台 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved