1
我正在研究使用C(StormLib)編寫的庫的C++應用程序。該庫有一個功能來讀取文件到void* buffer
(我猜char[]
)。我想將其發送到不同的庫進行處理。希望可以用boost::iostreams::stream_buffer
或boost::asio::streambuf
之類的東西來完成,以便將文件存儲爲通過任何方法需要讀取。可能與memcpy一起使用istream
我已經嘗試只是在istream的傳遞(具有boost::asio::streambuf
開放)的功能和它給了我一個BADACCESS,因爲它試圖執行
memcpy((theFile),(myiStream),(full size of the file))
我基本上會像某種「一袋一袋「的對象,可以很容易地轉移到不同的方法來結構化的數據轉換,但我不知道我應該如何實現它。
我想將它交給庫來使用ImageMagick或FFMPEG的數據轉換(根據文件類型),然後將結果寫入文件。 對象的大小可以從3KB到500MB + –
@ user1939612:這聽起來像你只是想要一些東西來保存任意數據。所以像'std :: vector'這樣的東西就可以實現。 –
看來工作,與StormLib 這樣做專供將來參考 '的std ::矢量 fileBuffer;'' fileBuffer.resize(SFileGetFileSize(文件句柄,NULL));'' HANDLE句柄;'' 如果( !'File',FileFileSize(fileHandle,NULL),NULL,NULL))' '''throw'無法讀取文件到內存';' ''' –