我正在开发一个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))
我基本上想要一种"比特袋"对象,可以很容易地移动到不同的方法,以结构化的方式转换数据,但我不知道我应该如何实现它。
在c++中,您想如何处理这些数据?如果你只想要原始数据,那么你可以(例如)只创建一个std::vector<char>
, resize
,这样它就足够大,可以容纳所有的数据*,然后传递一个指针到它的第一个元素。