簡體   English   中英

如何在 c++ 中構造帶有嵌入 NULL 字符的 BSTR?

[英]How can i construct BSTR with embedded NULL character in c++?

我如何構建嵌入了 NULL 字符的 BSTR?

使用傳遞 null 作為第一個參數的SysAllocStringLen()來分配緩沖區,然后以您喜歡的任何方式填充主體。 像這樣:

BSTR bstr = SysAllocStringLength( 0, desiredLength );
if( bstr == 0 ) {
   //handle error, get out of here
}
for( int i = 0; i < desiredLength; i++ ) {
    if( i % 3 == 0 ) {
       bstr[i] = 0;
    } else {
       bstr[i] = 'A';
    }
}

短代碼片段

BSTR HasNul = ::SysAllocStringLen(L"Who needs\0 embedded like that?", 30);
std::wcout << L"Last character: " << HasNul[29] << "  " << HasNul << L"\n";

BSTR的長度為 30,所以最后一個字符是HasNul[29] ,在我的例子中是問號。 output 是

Last character: ?  Who needs

因為純 C++ 方法std::wcout在第一個 NUL 字符處停止。 作為初學者,你真的需要嗎?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM