2011年9月2日 星期五

How to change EXE icon with VC

隨著年紀越來越大,人的記憶真的是會越來越差,因應專案的更新,所以有更換原始專案exe的icon的需求,稍微Google一下,討論的人很多,但是都沒一個好解,大部份的解都是說以define的數字為順序,於是我測試一下,發現並不是以define的數字為順序的依據,而且是define名稱的字母排序為依據,舉例以下為resource.h檔案內的定義:
#define IDI_MAIN_ICON 102
#define IDI_AAA_ICON 103

.rc 檔案的內容為
IDI_MAIN_ICON ICON "res\\001.ico"
IDI_AAA_ICON ICON "res\\002.ico"

以數字來說, IDI_MAIN_ICON是比較小的,以檔案命來說001.ico是比較小,那編譯成exe時所選用的icon圖會是哪一個呢?答案是IDI_AAA_ICON,因為它的命名排序上比IDI_MAIN_ICON前面,所以會優先選擇成為exe檔案的預設ico圖。

P.S其實數個月前在處理另一個專案時就有發現這件事,但是忘記了,現在又遇到又去試一下才突然想起其實已經曾經處理過這個問題,人啊~~~