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);