首页 > 解决方案 > 将图像直接保存到 _variant_t

问题描述

我需要将 GDI+ 位图图像字节存储到_variant_t. 我可以将图像保存IStream(由 创建SHCreateMemStream),然后我可以将流的内容复制到使用创建的缓冲区中SafeArrayCreate(VT_UI1,...)。但这意味着在某些时候我将在内存中两次拥有相同的字节数组。它有效,但我想知道是否有一些简单的方法可以在内存中只有一个缓冲区。也许有一些我不知道的“SafeArrayStream”可以用来代替内存流(我当然不想自己做一个)。或者也许有一种方法可以在调用之前确定所需的缓冲区大小Image::Save

我创建的_variant_t然后由第三方库使用。它可能会制作缓冲区的第三份副本,但我无法控制它。

标签: visual-c++comgdi+

解决方案


推荐阅读