我正在开发一个C ++应用程序,它使用一个用C语言编写的库(StormLib)。该库具有将文件读取到void* buffer
的功能(我猜是char[]
)。我想将其发送到另一个要处理的库。希望可以使用boost::iostreams::stream_buffer
或boost::asio::streambuf
之类的东西来存储文件,以便通过任何方法需要来读取。
我试过简单地将一个istream(有一个boost::asio::streambuf
打开)传递给该函数,它在尝试执行时给了我一个BADACCESS
memcpy((theFile),(myiStream),(full size of the file))
我基本上喜欢某种“包位”对象,可以很容易地转换为不同的方法来以结构化方式转换数据,但我不知道应该如何实现它。
答案 0 :(得分:0)
在使用C ++将数据恢复后,您想对数据做什么?如果你只是想要原始数据,那么你可以(例如)创建一个std::vector<char>
,resize
,这样它就足以容纳所有数据 * ,然后通过指向其第一个元素的指针。
<小时/> *如何确定“足够大”是一个不同的问题......