關於在BSTR中儲存二進位制資料的若干問題 (轉)

worldblog發表於2007-12-11
關於在BSTR中儲存二進位制資料的若干問題 (轉)[@more@]

如果二進位制資料中包含兩個連續的NULL字元,

使用一般的分配SysAllocStringByteLen就會
出問題,它會將資料截斷。

//error
byte buffer[10]="testtest";
BSTR bsTemp;
bsTemp = SysAllocStringByteLen(buffer,10);

bsTemp中實際儲存內容只有test

//correct

byte buffer[10]="testtest";
BSTR bsTemp;
bsTemp = SysAllocStringByteLen(NULL,10);
memcpy(bsTemp,buffer,10);

另外在與傳送BSTR資料時,必須採用raw方法,
不能採用_bstr_t封裝形式呼叫,否則仍然會封裝資料丟失

 


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752043/viewspace-991257/,如需轉載,請註明出處,否則將追究法律責任。

相關文章