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

原创 2001年12月21日 15:48:00

如果二进制数据中包含两个连续的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封装形式调用,否则仍然会封装数据丢失

 

VC中BSTR、Char*、CString类型相互转换

1、char*转换成CString 若将char*转换成CString,除了直接赋值外,还可使用CString::format进行。例如: char chArray[] = "This is ...
  • mitesi
  • mitesi
  • 2014年04月08日 16:16
  • 1492

关于jacob支持BSTR类型的经验总结

作者:朱金灿来源:http://blog.csdn.net/clever101           jacob是实现Java和COM之间互操作的一个开源中间件。网上大多的程序示例基本上是使用jacob...
  • clever101
  • clever101
  • 2015年03月30日 23:33
  • 1578

BSTR使用误区以及隐藏的内存破坏和内存泄漏

BSTR使用误区以及隐藏的内存破坏和内存泄漏 作者:magictong 简介 BSTR的数据结构是什么样子并不是本文讨论的问题,但是却是本文的基础。在解决COM的跨平台编程的问题时,需要...
  • xl19900502
  • xl19900502
  • 2014年06月05日 12:34
  • 716

在C++中如何将ActiveX控件所使用的BSTR数据转换成CHAR字符数组?

在C++中如何将ActiveX控件所使用的BSTR数据转换成CHAR字符数组?   BSTR类型是COM中使用的标准字符串类型。它其实是一个32位指针,保存字符串首字符的地址。        在C++...
  • luengyong
  • luengyong
  • 2013年12月11日 10:45
  • 985

BSTR 的内存分配和释放

当创建 BSTR 并在 COM 对象之间传递它们时,必须小心地处理它们所使用的内存以避免内存泄漏。当BSTR 停留在接口中时,在完成其使用后必须释放出它的内存。但是,如果 BSTR 传递出了接口,那么...
  • wanglei9876
  • wanglei9876
  • 2014年11月22日 19:09
  • 895

Unicode编码下CString、char*、BSTR相互转换,char*、wchar_t*相互转换

更多精彩内容,请见:http://www.16boke.com 1、Unicode编码下CString转为char* 方法一:使用API:WideCharToMultiByte进行转换 #inclu...
  • one_in_one
  • one_in_one
  • 2014年05月20日 10:30
  • 5631

C#下文件转换到二进制流再到十六进制的转换流程

C#下文件转换到二进制流再到十六进制的转换流程
  • energeticsunxiaocong
  • energeticsunxiaocong
  • 2015年07月20日 15:44
  • 988

BSTR向WideString赋值导致内存泄漏

COM中的BSTR向WideString赋值导致内存泄露
  • zhang_qxian
  • zhang_qxian
  • 2017年01月06日 08:59
  • 225

二进制文件与16进制(十六进制)文本文件互转工具

/* * 本软件为免费、开源软件。 * 本软件的版权(包括源码及二进制发布版本)归一切公众所有。 * 您可以自由使用、传播本软件。 * 您也可以以任何形式、任何目的使用本软件(包括源码及二进...
  • crazycoder8848
  • crazycoder8848
  • 2015年05月11日 18:21
  • 3936

像UE一样将二进制文件转换为16进制显示

package test; import java.awt.Dimension; import java.awt.Toolkit; import java.awt.event.ActionE...
  • w172087242
  • w172087242
  • 2016年04月28日 13:28
  • 1084
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:关于在BSTR中存储二进制数据的若干问题
举报原因:
原因补充:

(最多只允许输入30个字)