VC2010使用GSOAP调用C#写的WEBSERVICE
来源:互联网 发布:华东师范大学 网络教育 编辑:程序博客网 时间:2024/06/06 08:24
一、环境:
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="http://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");
- VC2010使用GSOAP调用C#写的WEBSERVICE
- VC 2010 使用GSOAP调用C#写的WEBSERVICE
- C++使用gSoap调用C#写的webservice中文乱码问题
- gsoap调用C#开发的WebService
- gsoap的使用(调用webservice)
- Qt使用gSOAP调用WebService
- c/c++使用gsoap调用wcf发布的webservice
- c/c++使用gsoap调用wcf发布的webservice
- VC2010 调用 Webservice
- c/c++ 使用gsoap调用webservice
- WIndows下使用gSOAP技术调用WebService
- qt使用gsoap调用webservice接口
- C++使用gsoap调用webservice接口
- C++、C#写的WebService相互调用
- 关于delphi调用c#写的webservice
- java调用c#写的webservice
- C++、C#写的WebService相互调用
- C++、C#写的WebService相互调用
- 想想这些,工作的事就简单了
- 中用简易方法实现淡入淡出的启动画面
- Asp.Net底层原理(一、浏览器和服务器的交互原理)
- 【转】世界上的主要宗教介绍
- Gdb调试器
- VC2010使用GSOAP调用C#写的WEBSERVICE
- JSP运行机制
- linux下的小技巧(持续更新中)
- 【分享rmzt:网球王子立海大动漫主题】
- an error has occurred while trying to access the log file. logging may not function properly
- REPORT zfs10_memory_a01.
- 【转】SQL学习---游标的使用
- toj2892 Task
- 五种常见的设计模式