1. 程式人生 > >如何讓打包的C++安裝程式以管理員身份在Win7下執行

如何讓打包的C++安裝程式以管理員身份在Win7下執行

問題描述:

    使用VS2010開發的C++專案,使用inno打包後的安裝程式,安裝在系統盤後,在桌面建立的快捷方式必須右鍵以管理員身份才能正常執行,否則雙擊執行程式出現異常。

解決方法:

     在VS2010解決方案資源管理器中右鍵啟動專案->屬性,彈出 個工程屬性頁,定位到連結器->清單檔案->UAC執行級別選擇requireAdministrator (/level='requireAdministrator')

,單擊應用、確定,關閉工程屬性頁。


編譯生成新的可執行檔案,重新打包,安裝後的程式,雙擊桌面快捷方式即可正常執行。

後續問題補充:

     對於已經安裝VS的Win7環境,上述問題已經解決,但若打包程式的Win7安裝環境尚未安裝VS2010,可能會出現Win32下缺少如下dll檔案的問題


此時的解決方案是使用inno setup打包安裝程式時,直接將這三個dll在程式安裝時拷貝到system32下即可

以下為iss檔案的改動


此時使用inno setup compiler重新編譯iss檔案,生成的可執行檔案就可以在為安裝缺少以上dll的win7系統中運行了。

注意inno下System32正確的destDir是sysnative,否則dll檔案會在安裝時sysWOW64目錄中去,即使destDir寫做{win}\System32\,

dll也不會再安裝時正確拷貝到System32下。