2009-11-27 27 views
1

我想使用wxZipOutputStream寫出一個zip文件。代碼來自這個論壇,並與xml文件一起工作(當我使用wxTextOutputStream時)。現在,我試圖包含一個圖像文件,但wxImage類中的SaveFile函數需要一個類wxOutputStream,但wxTextOutputStream/wxDataOutputStream沒有基類,因此我無法編譯它。我只想寫出一個wxImage和一個xml文件到一個zip文件。我該如何去做呢?wxImage通過流的Zip文件。可能?

//convert stream to zip file. 
wxFFileOutputStream out(m_loaded_filename.GetFullPath()); 
wxZipOutputStream zip(out); 
// wxTextOutputStream txt(zip); 
wxDataOutputStream txt(zip); 


zip.PutNextEntry("my.xml"); 
txt << xmltext; 
... 
... 
... 

//value is wxImage* 
//key is wxString 
zip.PutNextEntry(key); //filename 
if(value->IsOk()) 
{ 
    value->SaveFile(zip); //compiler throws error. 
} 
+0

像往常一樣,它會如果你告訴我們實際的錯誤,請幫忙。 – MSalters 2009-11-27 13:23:19

+0

至於「期望一個類wxOutputStream但wxTextOutputStream/wxDataOutputStream沒有基類」 - 這是**好**。名字選擇不當,誤導了你。但是,繼承是好的:它們確實不是wxOutputStream類型。因此,你不能在SaveFile()中使用它們,這是正確的。 – MSalters 2009-11-27 13:30:37

回答

1

looks像你必須指定圖像的檔案類型,請嘗試:

value->SaveFile(zip, wxBITMAP_TYPE_PNG) 

(在key文件的擴展名當然應該是png格式)

0

是否鍵入鑄造作品:

值 - > SAVEFILE((wxOutputStream &)拉鍊);

+0

即使這樣做,不要。請指定C++的意思。這是一個'static_cast <>'或者'reinterpret_cast <>'? – MSalters 2009-11-27 13:21:38