1. 程式人生 > >嵌入清單檔案的兩種方法

嵌入清單檔案的兩種方法

嵌入清單檔案的兩種方法:

1>生成後事件中指定類似下面格式的命令列,最後的型別EXE為1,DLL為2

mt.exe –manifest MyApp.exe.manifest -outputresource:MyApp.exe;1

mt.exe –manifest MyLibrary.dll.manifest -outputresource:MyLibrary.dll;2

2,>修改工程選項

指定嵌入清單的位置


以下舉個實際的例子:

有兩個同事先後問了我事實上是同一個問題,有個NT服務,改用MD方式構建後,重新構建rebuild沒問題,構建build問題,這個服務程式太大了,全部重新生成要很久

1>第一個同事跟我說,這個服務用MD方式,build後服務無法啟動,我建議他按上面的第一種方法操作,因為第一種方法,不論是build還是rebuild都會執行

2>第二個同事i跟我說的是,這個服務不知道改動了什麼程式碼,服務無法啟動,事件檢視器顯示服務啟動超市,servicemain函式都未進入

於是我去看了下現象,建議他以命令列的方式除錯,結果發現彈窗報錯,指定的執行時庫不對,用vc直接打開了這個EXE,發現資源中確實沒有RT_MANIFEST段

用processxp看了下服務啟動時的執行緒,發現執行緒堆疊裡還真有個Messagebox,難怪會超時呢


之前見人用過第一種方法,但不知道這跟第二種方法有啥區別,現在知道了,