2013-11-28 101 views
1

我正在爲我們的本地html5演示文稿編譯CEF(Chromium Embedded Framework)。 我應該說我對這一切都很新(CEF和C++)。如何添加和使用.zip(或.pak)文件到C++項目?

我已經爲演示文稿優化了cefclient項目,但我需要將所有html/js/css/etc文件嵌入到項目中(從本地存儲中讀取不是選項)。根據我的理解,我應該使用.zip或.pak(更名爲zip)文件來嵌入。但是我如何在項目中使用它們? 我應該使用一些lib解壓縮(zlib?)還是有另一種流行的方式?我怎樣才能確定文件將被編譯成項目?

對不起,有這樣的基本問題,但關於這方面的信息很少(或谷歌恨我今天)。

謝謝你的幫助!

UPD:發現偉大的工具 - WBEA(http://asterclick.drclue.net/WBEA.html),它看起來像我想要的,但工作很慢(與JS)。

UPD 2:事實證明有很多方法可以製作HTML5桌面應用程序,例如Node-Webkit。 這裏有一篇文章比較其中的一些http://clintberry.com/2013/html5-apps-desktop-2013/

回答

0

您需要:

  1. 創建壓縮文件whitin你的資源。
  2. 將它嵌入爲win32資源(在這一步之後,你將得到正確的可執行文件,裏面有.zip文件)。
  3. 創建自定義方案處理程序來訪問此zip文件。

CefZipReader類將handly圍繞步驟實現處理器3

看,可能是像你想要的東西已經存在的地方。

+0

謝謝,這確實有幫助。有趣的是,這是讓我獲得HTML5桌面框架的方式。 – Demy

0

這聽起來非常類似於自解壓安裝程序。

不需要編譯任何東西,只需將zip連接到可執行文件的末尾即可。您只需從可執行文件的開始處在運行時查找偏移量即可。這可以通過編寫一個大的幻數並稍後查找來輕鬆完成。

例的Linux:

cat app magic_number data > new_app 

示例窗口:

copy app.exe /B + magic.dat /B + data.dat /B new_app.exe 
+0

非常感謝您的回答。你能不能展示一下如何在程序中連接它們之後讀取文件? P.S .:我發現Enigma Virtual Box工具,它可以在這種情況下有用,而且我仍然可以在包裝後閱讀文件? – Demy

+0

我沒有使用這個工具,軟件保護不在m範圍內。我將展示一個簡單的代碼片段來讀取這樣的文件。 – egur

相關問題