如果你曾經使用過這個工具,那就有點像這樣。我希望能夠將我的所有聲音,圖像和其他所有內容都嵌入到一個C++可執行文件中。 Game Maker會有一個內置的編輯器,並將圖像嵌入到.gmk文件中,當您打開它時,它會讀取圖像並將其顯示在遊戲中。我認爲他將圖像保存爲圖像,而不是保存在.gmk文件中的純數據,由編輯器解釋或由解釋器寫入.exe。我會如何去做類似的事情?如何將資源嵌入到單個可執行文件中?
5
A
回答
2
Windows資源系統是這樣工作的,所以如果你製作一個WinAPI或MFC應用程序,你可以使用它。而且,Qt提供了相同的功能,但是採用平臺獨立的方式。他們只是以原始二進制格式將文件寫入正常C++文件中的字節數組中,以便將它們作爲數據編譯到exe中。然後他們提供訪問這些數據塊的功能,如普通文件,儘管我不知道它們是如何工作的。可能是它們的文件類的特殊實現,它只是訪問這些字節數組變量。
1
僅用於圖像,一個非常簡單的方法是使用XPM格式。
此格式是一個有效的C/C++頭文件,因此您可以將其直接包含到C++源文件中並直接使用它。
這種方法的主要問題是XPM不是壓縮格式,因此使用了大量存儲空間。 因此,實際上我只看到它用於圖標和小圖形對象,但原則上你可以做更多。
關於XPM的另一件很酷的事情是,它是人類可讀的 - 對於設計小而簡單的圖標來說也很棒。
爲了推廣這一理念爲其它格式,你可以做的是創造一個編譯鏈是:
- 編碼上述目標文件作爲ASCII(的Uuencode或如)
- 打開該成一個單一命名C源文件中的字符串。
- 創建標題只是聲明名稱
- 定義一個函數從字符串
相關問題
- 1. 將資源文件嵌入到可執行文件中的性能
- 2. 如何使用py2exe將文本文件嵌入到單個可執行文件
- 3. 將資源嵌入到二進制映像/程序可執行文件/ .exe中?
- 4. 將本地化資源.DLL嵌入到C#中的可執行文件?
- 5. 如何將資源注入已建立的可執行文件
- 6. 如何將XML文件嵌入到資源文件
- 7. 如何將Qt資源嵌入到.dll文件中?
- 8. 如何將資源文件嵌入到exe中
- 9. 將文件嵌入到java可執行文件中
- 10. 將文件嵌入到現有的.Net可執行文件中
- 11. C++將各種資源文件鏈接到一個可執行文件中
- 12. 如何將資源從一個可執行文件複製到其他
- 13. 可以將Json.Net嵌入到可執行文件中嗎?
- 14. 如何將所有資源(CSS,js,圖片)嵌入到一個HTML文件中?
- 15. 如何在我的可執行文件中嵌入資源以將其從用戶中隱藏起來?
- 16. 從資源文件中將字體嵌入到as3中
- 17. CMake:將ELF嵌入到可執行文件中
- 18. 我如何在cpp可執行文件中嵌入licence.licx文件?
- 19. 如何使用C++編輯可執行文件中的資源?
- 20. 如何在C#2005的單個資源文件中嵌入多個Xml片段?
- 21. 停止XCode將嵌入編譯時間嵌入到可執行文件中
- 22. 如何將資源從可執行jar文件保存到本地驅動器?
- 23. 將文件系統嵌入可執行文件中?
- 24. 將web應用程序作爲資源嵌入到C++ Qt可執行文件中
- 25. 將ServiceStack DLL嵌入單聲道可執行文件
- 26. 如何在不帶mt.exe的可執行文件中嵌入清單文件?
- 27. 將一個可執行二進制文件嵌入到一個shell腳本中
- 28. CF中的資源文件 - 未嵌入
- 29. 在資源文件中嵌入數據
- 30. c#:如何將exe文件嵌入資源?
非常有趣恢復二進制形式。我想這只是另一個微軟的東西,比如directX或者WinAPI。功能非常有用,但不是跨平臺。但很高興看到QT具有類似的功能。 – Keelx 2011-05-15 03:44:27
MSDN的使用資源(Windows):https://msdn.microsoft.com/en-us/library/ms648008(v=VS.85).aspx – Andrew 2017-01-28 05:16:13