2013-08-19 38 views
0

爲了更好地識別生成的文件,我想在編譯後的(C++)* .exe或* .dll中編寫一些元數據。這個元數據應該在編譯期間通過#define-commands創建。使用預處理器創建元數據

這可能嗎?還是有另一種方法來創建文件中的一些容易識別的數據(如元數據)?

回答

0

特定於Windows,如果你使用Visual Studio,並且希望能夠添加關於二進制數據您正在構建,您可以將版本資源添加到項目中,這樣可以輕鬆更改生成的二進制文件的版本以及添加簡要說明。然後可以在生成的二進制文件的屬性中查看這些信息。

我相信任何使用ms編譯器的IDE也能夠處理資源文件,但我不確定在Visual Studio之外編輯它們是多麼容易。

+0

好的,我打算嘗試一下,在我只用Visual Studio工作(下一年)之後,我不擔心兼容性問題......非常感謝! –

+0

Version塊只有特定的可以編輯的字段,所以根據多少數據(或哪種類型)它可能不合適。但是將數據粘貼到資源部分肯定是正確的方法(無論是在版本塊還是自定義資源類型中),因爲這樣可以在不必通過exe的.data部分grep來發現它。 –

0

C風格的字符串編譯後應該是完整的。你可以有類似的東西,

char * metadata = "<metadata>Metadata stuff goes here</metadata>"; 

然後只是搜索你的.exe文件的「元數據」,以便找到它。

(雖然我真的不知道你爲什麼會想這樣做......)

+0

是否有另一種識別文件的方法(不使用元數據或類似的東西)? –

+0

還是不太確定你問的是什麼,但是你只是想在重命名/移動後能夠識別.exe文件嗎?如果是這種情況,你可能需要考慮哈希。 – PherricOxide

+0

我想標記編譯的可執行文件或DLL,以便其他程序可以識別它並查看它是否仍然是舊的或新的,與名稱無關。 –