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

后端 未结 7 1280
囚心锁ツ
囚心锁ツ 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:06

    As mentioned before, WindowsRuntimeBufferExtensions from the namespace System::Runtime::InteropServices::WindowsRuntime is only available for .Net applications and not for native C++ applications.

    A possible solution would be to use Windows::Storage::Streams::DataReader:

    void process(Windows::Storage::Streams::IBuffer^ uselessBuffer)
    {
        Windows::Storage::Streams::DataReader^ uselessReader =
                 Windows::Storage::Streams::DataReader::FromBuffer(uselessBuffer);
        Platform::Array<Byte>^ managedBytes = 
                             ref new Platform::Array<Byte>(uselessBuffer->Length);
        uselessReader->ReadBytes( managedBytes );                               
        BYTE * bytes = new BYTE[uselessBuffer->Length];
        for(int i = 0; i < uselessBuffer->Length; i++)
            bytes[i] = managedBytes[i];
    
        (...)
    }
    
    0 讨论(0)
提交回复
热议问题