用gsoap实现cbuilder5的webservice调用,但调试不同,请大侠们帮帮忙

manzhy 2012-02-16 11:02:22
从网上下载了一个利用根据提供的股票名称返回相应的股票价格的案例,主函数如下:
#include "soapH.h" // 包含生成的存根例程定义
#include "net_DOT_xmethods_DOT_services_DOT_stockquote_DOT_StockQu
oteBinding.nsmap" // 包含命名空间表
int main()
{
struct soap soap; // gSOAP 运行环境
float quote;
soap_init(&soap); // 初始化运行环境(只执行一次)
if (soap_call_ns1__getQuote(&soap, NULL, NULL, "IBM", "e) == SO
AP_OK)
std::cout << "Current IBM Stock Quote = " << quote << std::endl;
else // an error occurred
soap_print_fault(&soap, stderr); // 在stderr 中显示错误信息
soap_destroy(&soap); // 删除类实例(仅用于C++中)
soap_end(&soap); // 清楚运行环境变量
soap_done(&soap); // 卸载运行环境变量
return 0;
}
相关的依赖文件我都放在同一个工程目录下,但运行时出错,出错的头文件内容:
#ifndef soapStub_H
#define soapStub_H
#getQuote
#include "stdsoap2.h"
#if GSOAP_H_VERSION != 20807
#error "GSOAP VERSION MISMATCH IN GENERATED CODE: PLEASE REINSTALL PACKAGE"
#endif
报错:
E2048 Unknown preprocessor directive:'getQuote'
F1003 Error directive:"GSOAP VERSION MISMATCH IN GENERATED CODE: PLEASE REINSTALL PACKAGE"


...全文
767 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
manzhy 2012-02-16
  • 打赏
  • 举报
回复
谢谢热心回复,但我还是想先用cb5调一下试试,有没有用过的指点一下啊?
mabaoyes 2012-02-16
  • 打赏
  • 举报
回复
bcb5没试过,bcb6 使用HTTPRIO 调用webservice
给个参考
http://topic.csdn.net/u/20110422/12/13e283fb-a7f5-4068-b237-109e0d14263c.html

void __fastcall TForm1::Button1Click(TObject *Sender)
{ //注意 WeatherWebService.cpp 中新加的 Regist代码

HTTPRIO1->WSDLLocation = "http://www.webxml.com.cn/WebServices/WeatherWebService.asmx?wsdl";
HTTPRIO1->URL = "http://www.webxml.com.cn/WebServices/WeatherWebService.asmx";
HTTPRIO1->Service = "WeatherWebService";
HTTPRIO1->Port = "WeatherWebServiceSoap";

NS_WeatherWebService::_di_WeatherWebServiceSoap p =NS_WeatherWebService::GetWeatherWebServiceSoap(true,"");

ArrayOfString str;
//str = p->getWeatherbyCityName("上海"); //看来CB6 与 C#.net 的中文字符类型转换之间存在问题。
str = p->getSupportCity(""); //空白参数的调用正常
int iLen = str.Length;
Memo1->Lines->Add(AnsiString(iLen));
for(int a=0;a<str.Length;a++)
{
Memo1->Lines->Add(str[a]);
}
}

//WeatherWebService.cpp RegTypes()函数尾加一行
InvRegistry()->RegisterInvokeOptions(__interfaceTypeinfo(WeatherWebServiceSoap),ioDocument); //uky 20110422


1,316

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder 网络及通讯开发
社区管理员
  • 网络及通讯开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧