关于在BSTR中存储二进制数据的若干问题

王朝vc·作者佚名  2006-01-08
宽屏版  字体: |||超大  

如果二进制数据中包含两个连续的NULL字符,

使用一般的分配函数SysAllocStringByteLen就会

出问题,它会将数据截断。

//error

byte buffer[10]="test\0\0test";

BSTR bsTemp;

bsTemp = SysAllocStringByteLen(buffer,10);

bsTemp中实际保存内容只有test

//correct

byte buffer[10]="test\0\0test";

BSTR bsTemp;

bsTemp = SysAllocStringByteLen(NULL,10);

memcpy(bsTemp,buffer,10);

另外在与组件传送BSTR数据时,必须采用raw方法调用,

不能采用_bstr_t封装形式调用,否则仍然会封装数据丢失

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
© 2005- 王朝网络 版权所有