Getting an array of bytes out of Windows::Storage::Streams::IBuffer

后端 未结 7 1304
囚心锁ツ
囚心锁ツ 2020-12-01 11:22

I have an object that implements the interface Windows::Storage::Streams::IBuffer, and I want to get an array of bytes out of it, however while looking at the d

7条回答
  •  夕颜
    夕颜 (楼主)
    2020-12-01 12:02

    This should work with WinRT extensions:

    // Windows::Storage::Streams::DataReader
    // buffer is assumed to be of type Windows::Storage::Streams::IBuffer
    // BYTE = unsigned char
    
    DataReader^ reader = DataReader::FromBuffer(buffer);
    
    BYTE *extracted = new BYTE[buffer->Length];
    
    // NOTE: This will read directly into the allocated "extracted" buffer
    reader->ReadBytes(Platform::ArrayReference(extracted, buffer->Length));
    
    // ... do something with extracted...
    
    delete [] extracted; // don't forget to free the space
    

提交回复
热议问题