c#写的webservice,传入的类型是byte[]。
c++调用webservice,自动产生的WebReference.h里定义的对应类型是ATLSOAP_BLOB,在atlsoap.h里ATLSOAP_BLOB的定义是
[ export ]
typedef struct _tagATLSOAP_BLOB
{
unsigned long size;
unsigned char *data;
} ATLSOAP_BLOB;
如何使用?
例:
//准备byte
unsigned long destLen = ?;
byte* dest = new byte[destLen];
...
//byte转ATLSOAP_BLOB
ATLSOAP_BLOB blobIn;
blobIn.size = destLen;
blobIn.data = (unsigned char*)malloc(blobIn.size*sizeof((char*)dest));
ATLASSERT(blobIn.data != NULL);
memset(blobIn.data, 0xFF, blobIn.size);
memcpy(blobIn.data, dest, destLen);
...
//用完释放blobIn.data
free(blobIn.data);
本文介绍了一种C#编写的WebService如何通过C++进行跨语言调用的方法,特别是针对byte[]类型的数据如何转换为C++中对应的ATLSOAP_BLOB类型,并提供了具体的实例代码。
250

被折叠的 条评论
为什么被折叠?



