我正在設計一些跨平臺工具,並且我想存儲一些只讀數據,一種資源數據(圖像或字符串或「由......製造」)信息或文件版本信息)。存儲只讀數據混合程序集和C++
我正在嘗試編碼該工具,「純c」或「C++」。
我想使用匯編器來存儲資源數據,因此,數據可以直接從程序或共享庫文件中讀取,不需要執行。
在執行時,還可以通過程序自身讀取數據。
當編譯代碼時,數據將只寫入一次。
我發現了2種可能的方式來做到這一點。
(1)內聯彙編。將asm指令直接添加到「純c」或「C++」文件中,像Borland,MS,GNU這樣的幾個編譯器就有這種形式。 (2)在獨立的文件中生成代碼和彙編代碼,並使用編譯器工具(如鏈接器,編譯器或編譯器)來編譯全部彙編代碼。
我不想存儲彙編指令,只有數據。
我的目標是x86-32位處理器,Windows,Linux & BSD,但是,如果可能的話,可以擴展到其他平臺或體系結構。
我知道Windows使用不同的文件格式,如PE或COFF或ELF二進制文件。
任何其他或替代的想法? 任何建議,手冊,鏈接如何做到這一點?
謝謝。
這個答案可能有你想要的信息:http://stackoverflow.com/a/4158997/12711一種方法只適用於GCC工具鏈,但另一種方法適用於任何C編譯器。爲了讓一個共享庫讀取數據,你需要有一些方法來獲得指向共享庫的數據的指針(如果這對你來說可行,通過函數很容易實現)。 – 2012-02-02 01:32:46