在VS2005中建立Win32控制臺程序時,可能會遇到以下運行錯誤:
于是程序無法正常運行。
此問題的原因是由于VS 2005在生成可執(zhí)行文件時使用了一種新的技術(shù),該技術(shù)生成的可執(zhí)行文件會伴隨生成一個清單文件(manifest file)(.manifest后綴文件)(其本質(zhì)上是XML文檔,你可以用文本編輯器打開看看),并在鏈接完成后將該清單文件嵌入到exe文件中(默認情況下)。而在FAT32文件系統(tǒng)中,在處理清單文件階段,當增量鏈接時不能完成清單文件的更新(默認情況下),于是造成清單文件嵌入失敗,從而使該exe文件運行時沒有相應的清單文件而運行失敗并提示如上錯誤。而在NTFS文件系統(tǒng)中則不會出現(xiàn)上面的問題。
比較好的解決方案有兩個:
1.在項目的“屬性|配置屬性|清單工具|常規(guī)”中的“使用FAT32解決辦法”選擇“是”(默認為“否”),重新生成項目即可解決問題。如下圖所示:
2.不啟用增量鏈接。在項目的“屬性|配置屬性|鏈接器|常規(guī)”中的“啟用增量鏈接”選擇“否”。此方法阻斷了問題產(chǎn)生的源頭,其每次生成exe文件時都直接嵌入清單文件,而不是默認的根據(jù)時戳而決定是否更新清單文件。如下圖所示: