我有以下file。我編寫了一個C++程序,將其複製並粘貼到另一個程序上(以及其他內容)。但是,我想擺脫它。也就是說,我不想分發這兩個一個可執行文件和這個文件。我嘗試對內容進行硬編碼,但由於存在特殊字符(如"
,\n
等),並且字符串變量可能並不總是具有保存所有這些數據所需的內存。擺脫不必要的輸入文件
我還能做什麼?
我有以下file。我編寫了一個C++程序,將其複製並粘貼到另一個程序上(以及其他內容)。但是,我想擺脫它。也就是說,我不想分發這兩個一個可執行文件和這個文件。我嘗試對內容進行硬編碼,但由於存在特殊字符(如"
,\n
等),並且字符串變量可能並不總是具有保存所有這些數據所需的內存。擺脫不必要的輸入文件
我還能做什麼?
我要建議的第一件事是編碼文件的內容。當然是自動的。我可以想象一個打字的夢魘。據說,這裏有各種各樣的工具。例如,bin2h。或者,例如,有一個Qt Resources框架確實不錯,但可能不值得引入依賴關係,除非您已經使用Qt。
但是,如果您嘗試應付的任何內容足夠大以至於無法與內存匹配,則您只能堅持將該文件與程序一起外部分發。事實上,這是一種很常見的做事方式。例如,OS X(和iOS)的大多數重量級(而非僅限於)應用程序都是以「捆綁包」的形式分發的,這只不過是一個帶有資源文件和可執行文件的zip壓縮文件。如果您的目標是促進這種分銷實踐的平臺之一,那麼這也可能是一種解決方案。
希望它有幫助:)
我用bin2h成功。幸運的是,我的文件足夠小,可以用這種方式存儲在內存中。另外,我不知道這是一個以捆綁方式發佈文件的約定。我很想知道這是如何實現的,但這是另一個問題的主題。謝謝! – Raptor
你有一個特定的平臺嗎? – Joe
您可以將其處理爲靜態表格。 Qt有這樣的配置對象,它工作得很好。 –
爲什麼你必須將整個文件放入一個字符串變量中? – Beta