各位大侠,请教一个gSOAP返回结构体的问题,谢谢

lyf1206 2010-04-14 06:41:50
本人刚学C语音,做一个Web Service服务,返回值需要结构体,可始终编译不过去,谁帮我看看

程序 invoke.h


struct ns__RetType
{
int id;
char *name;
int a;
};
int ns__InvokeService(char *MetchodName,char *DataXML, struct ns__RetType * relust);

编译 soapcpp2.exe invoke.h
...全文
560 22 打赏 收藏 转发到动态 举报
写回复
用AI写文章
22 条回复
切换为时间正序
请发表友善的回复…
发表回复
lyf1206 2010-04-15
  • 打赏
  • 举报
回复
19楼的好像和我的一样,谢谢各位了!
liumeiqinyang 2010-04-15
  • 打赏
  • 举报
回复
gSoap的返回值一般是int型,标识error值的,需要获取的信息通过结构体的出参得到。
lyf1206 2010-04-15
  • 打赏
  • 举报
回复
解决了:

typedef char *xsd__string;
class ns2__FlightInfo
{
public:
xsd__string retXML;
};
struct ns1__getFlightInfoResponse {ns2__FlightInfo return_;};
int ns1__getFlightInfo(xsd__string MetchodName, xsd__string DataXML, struct ns1__getFlightInfoResponse &r);
liuwg9999 2010-04-15
  • 打赏
  • 举报
回复
换成这个试试
int ns__InvokeService(char *MetchodName,char *DataXML, struct ns__RetType& relust)
[Quote=引用楼主 lyf1206 的回复:]
本人刚学C语音,做一个Web Service服务,返回值需要结构体,可始终编译不过去,谁帮我看看

程序 invoke.h


struct ns__RetType
{
int id;
char *name;
int a;
};
int ns__InvokeService(char *MetchodName,char *DataXML, struct ns__RetType ……
[/Quote]
lyf1206 2010-04-15
  • 打赏
  • 举报
回复
[Quote=引用 16 楼 huanmie_09 的回复:]
看一下这个,希望对你有帮助:
http://topic.csdn.net/u/20090914/19/67bf6348-7f37-48dc-b70e-61fcef260e44.html
[/Quote]

这个看过了 ,他是在客户端向服务器端传结构体,客户端向服务端发送可以加多个参数,这个已经实现,我需要的是服务端向客户端返回结构体,按照gSOAP定义,返回值只有int型的,没有字符串呀!郁闷的很,也baidu不到例子,网上都是一些简单的加法运算的例子,返回值当然是int的了。
lyf1206 2010-04-15
  • 打赏
  • 举报
回复
呵呵 没关系 我表述不清
huanmie_09 2010-04-15
  • 打赏
  • 举报
回复
huanmie_09 2010-04-15
  • 打赏
  • 举报
回复
不好意思,理解错你的意思.
lyf1206 2010-04-15
  • 打赏
  • 举报
回复
是不是我描述不清楚,大侠们看看,就是这个帖子提出的问题:
http://zhidao.baidu.com/question/103132180.html
lyf1206 2010-04-15
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 huanmie_09 的回复:]
引用 10 楼 lyf1206 的回复:
回复9楼

这个程序就是全部代码,主要是用gSOAP生成相关代码是提示语法错误的

就是执行 :soapcpp2.exe invoke.h 命令时提示错误

这就是全部代码?
你只定义了头文件,还没有实现呀.
相当于你只声明了函数,而没有定义函数.
[/Quote]

你看一下http://www.itqun.net/content-detail/99297.html,可能会明白我的意思,
这是在gSOAP环境下生成服务端的声明,没有具体的函数实现。
huanmie_09 2010-04-15
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 lyf1206 的回复:]
回复9楼

这个程序就是全部代码,主要是用gSOAP生成相关代码是提示语法错误的

就是执行 :soapcpp2.exe invoke.h 命令时提示错误
[/Quote]
这就是全部代码?
你只定义了头文件,还没有实现呀.
相当于你只声明了函数,而没有定义函数.
pengzhixi 2010-04-15
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 lyf1206 的回复:]
回复2楼3楼,
函数声明的就是结构体,不知道是不是我写的有问题,对c才开始研究!见笑了!

syntax error
提示语法错误 不知道哪个地方错了?
[/Quote]

如果要返回结构体,你就返回结构体就是了。你这提示是语法错误,但是你这里写的不存在语法错误。
lyf1206 2010-04-15
  • 打赏
  • 举报
回复
回复9楼

这个程序就是全部代码,主要是用gSOAP生成相关代码是提示语法错误的

就是执行 :soapcpp2.exe invoke.h 命令时提示错误
huanmie_09 2010-04-15
  • 打赏
  • 举报
回复
就你这段程序来说,我看不出有什么问题。
关键是看你int ns__InvokeService(char *MetchodName,char *DataXML, struct ns__RetType * relust)函数的实现和调用方式了。
你需要的结构体可以通过函数的结构体参数来获取.
lyf1206 2010-04-15
  • 打赏
  • 举报
回复
哈哈 6楼好,还有敲鼓的呢!
lyf1206 2010-04-15
  • 打赏
  • 举报
回复
我要的初衷不是结构体,我要返回的是字符串,但Gsoap返回类型必须是int的,要么是结构体,所以就只能返回结构体,网上搜索了半天,解释的都不完整。所以只好在这里寻求帮助了。
soswaidao 2010-04-15
  • 打赏
  • 举报
回复
友情帮顶,友情帮顶
lyf1206 2010-04-15
  • 打赏
  • 举报
回复
回复2楼3楼,
函数声明的就是结构体,不知道是不是我写的有问题,对c才开始研究!见笑了!

syntax error
提示语法错误 不知道哪个地方错了?
lyf1206 2010-04-15
  • 打赏
  • 举报
回复
回复 1 楼:
错误提示: There were errores:1 syntax error
xiaowai0219 2010-04-14
  • 打赏
  • 举报
回复
返回值需要结构体
int ns__InvokeService(char *MetchodName,char *DataXML, struct ns__RetType * relust);
是这个函数需要返回结构体吗?

那返回类型就不应该是int,而是结构的啊
加载更多回复(2)

69,369

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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