string如何转换成xsd__base64Binary*

liguicheng2006 2011-05-30 02:44:25
新用gSOAP,C++也很多不记得了,请指教:
我用CXF写了services,服务正常;用gSOAP生成了客户端代码,在VS2008建立了C++工程,调用了简单的services,正常;但某些服务中的参数使用byte[],即一个二进制数组,它用来传送文件。gSOAP将这些服务的byte[]参数生成了 class SOAP_CMAC xsd__base64Binary 类(在生成代码的soapStub.h中)。

class SOAP_CMAC xsd__base64Binary
{
public:
unsigned char *__ptr;
int __size;
char *id; /* optional element of type xsd:string */
char *type; /* optional element of type xsd:string */
char *options; /* optional element of type xsd:string */
struct soap *soap; /* transient */
public:
virtual int soap_type() const { return 8; } /* = unique id SOAP_TYPE_xsd__base64Binary */
virtual void soap_default(struct soap*);
virtual void soap_serialize(struct soap*) const;
virtual int soap_put(struct soap*, const char*, const char*) const;
virtual int soap_out(struct soap*, const char*, int, const char*) const;
virtual void *soap_get(struct soap*, const char*, const char*);
virtual void *soap_in(struct soap*, const char*, const char*);
xsd__base64Binary() { xsd__base64Binary::soap_default(NULL); }
virtual ~xsd__base64Binary() { }
};

在客户端,我可以读取文件到一个string里,但怎么样将string变成xsd__base64Binary* 呢?
下面这个帖子应该是类似问题,但他说简单而无写出来
http://topic.csdn.net/u/20090211/23/E29112E8-4E36-463C-8344-4387EA3CBF04.html

谢谢回复。
...全文
317 点赞 收藏 3
写回复
3 条回复
十八道胡同 2012年10月10日
unsigned char *__ptr; //这里存贮的是长度为__size的string
int __size;

其他的
char *id; /* optional element of type xsd:string */
char *type; /* optional element of type xsd:string */
char *options; /* optional element of type xsd:string */
struct soap *soap; /* transient */

为空就是了。
你可以试下。可以参考
回复 点赞
aidame 2012年10月10日
memset,memcpy
回复 点赞
nietsche 2011年10月24日
关注中...
回复 点赞
发动态
发帖子
C++ 语言
创建于2007-09-28

3.1w+

社区成员

24.8w+

社区内容

C++ 语言相关问题讨论,技术干货分享
社区公告
暂无公告