C++ 将IBuffer转换为字节数组C++;

C++ 将IBuffer转换为字节数组C++;,c++,arrays,vector,win2d,C++,Arrays,Vector,Win2d,我在论坛上搜索了一下,发现了这个问题,但我没能从中得到任何信息。这对我来说可能有点太激动了 我的问题的关键是调用RenderTargetBitmap->GetPixelsAsync()时有一个IBuffer。我现在需要使用这里提供的函数从这些数据创建画布位图 我没有找到将数据从IBuffer获取到一个可以工作的数组的方法。我找到了一种把数据转换成向量的方法 //convert IBuffer to byte array auto reader = ::Windows::Storage::Stre

我在论坛上搜索了一下,发现了这个问题,但我没能从中得到任何信息。这对我来说可能有点太激动了

我的问题的关键是调用RenderTargetBitmap->GetPixelsAsync()时有一个IBuffer。我现在需要使用这里提供的函数从这些数据创建画布位图

我没有找到将数据从IBuffer获取到一个可以工作的数组的方法。我找到了一种把数据转换成向量的方法

//convert IBuffer to byte array
auto reader = ::Windows::Storage::Streams::DataReader::FromBuffer(buf);

std::vector<unsigned char> data(reader->UnconsumedBufferLength);

if (!data.empty())
    reader->ReadBytes(
        ::Platform::ArrayReference<unsigned char>(
            &data[0], data.size()));
//将IBuffer转换为字节数组
自动读取器=::Windows::Storage::Streams::DataReader::FromBuffer(buf);
std::矢量数据(读卡器->未使用的缓冲长度);
如果(!data.empty())
读卡器->读字节(
::平台::阵列引用(
&data[0],data.size());

但从现在开始,我没有找到将其放入数组的方法。我曾试图使用来自的所有想法,但毫无效果。非常感谢您的帮助

&data[0]
是您的阵列。没有要转换的内容。您不需要将任何数据放入向量中-您只需创建一个长度为
reader->unsumedbufferlength
的向量,其元素设置为0@MikeMB哇!我不知道发生了什么。我直接从这里的另一个帖子上取的。非常感谢。我将利用这些信息继续前进