這裏顯示兩個版本的差異處。
下次修改 | 前次修改 | ||
microsoft:why_setup [2006/12/03 14:36] wenpei 建立 |
microsoft:why_setup [2008/07/12 15:22] (目前版本) wenpei |
||
---|---|---|---|
行 1: | 行 1: | ||
====== 為何需要有安裝檔而非直接是個執行檔 ====== | ====== 為何需要有安裝檔而非直接是個執行檔 ====== | ||
- | 發信人: nothing.bbs@bbs.nfu.edu.tw (..), 看板: Programming \\ | + | 發信人: nothing.bbs@bbs.nfu.edu.tw (..), 看板: Programming |
- | 標 題: Re: [問題] 為何需要有安裝檔而非直接是個執行檔? \\ | + | 標 題: Re: [問題] 為何需要有安裝檔而非直接是個執行檔? |
- | 發信站: 虎尾科技大學尋夢園 (Sat Dec 2 17:34:29 2006) | + | 發信站: 虎尾科技大學尋夢園 (Sat Dec 2 17:34:29 2006) |
- | 你寫一個程式時,當程式在執行時會去 load 一些 DLL 檔。 | + | 你寫一個程式時,當程式在執行時會去 load 一些 DLL 檔。 |
- | 這些 DLL 檔可能是微軟 OS 提供的,或者是一些套裝軟體提供的,比如 office,所以當你 compile 好你的程式之後再把程式丟到另一台電腦執行,你可能會發現無法執行,因為某個 DLL 找不到,當你把這個 msgbox 告訴你所欠缺的 DLL copy 到你要執行的電腦時,幸運的話也許就正常執行了,但如果不幸的話,它將會告訴你又欠缺了什麼 DLL 檔,這時候很可能你必須 copy 好幾個 DLL 檔你的程式才得以執行。 | + | 這些 DLL 檔可能是微軟 OS 提供的,或者是一些套裝軟體提供的,比如 office,所以當你 compile 好你的程式之後再把程式丟到另一台電腦執行,你可能會發現無法執行,因為某個 DLL 找不到,當你把這個 msgbox 告訴你所欠缺的 DLL copy 到你要執行的電腦時,幸運的話也許就正常執行了,但如果不幸的話,它將會告訴你又欠缺了什麼 DLL 檔,這時候很可能你必須 copy 好幾個 DLL 檔你的程式才得以執行。 |
- | 所以這時候如果你用一些工具把你的程式包裝成 setup.exe,這個 setup.exe 它自己會去 check 這台電腦有哪些 DLL 沒有裝上,它會幫你裝上。 | + | 所以這時候如果你用一些工具把你的程式包裝成 setup.exe,這個 setup.exe 它自己會去 check 這台電腦有哪些 DLL 沒有裝上,它會幫你裝上。 |
- | 比如你寫 DirectX 的遊戲,需要 DirectX Runtime Lib,maybe 這台電腦用的是 DirectX 8,但你的電腦開發環境是 DirectX 9,這時候如果你有用到一些 9 才有的 function 問題就會產生了。但幸運的是,這時候我們口中的 setup.exe 將會負責打理好這一切,包括版本的 check,安裝的過程中若有需要也會尋問 user 是否 replace DLL。 | + | 比如你寫 DirectX 的遊戲,需要 DirectX Runtime Lib,maybe 這台電腦用的是 DirectX 8,但你的電腦開發環境是 DirectX 9,這時候如果你有用到一些 9 才有的 function 問題就會產生了。但幸運的是,這時候我們口中的 setup.exe 將會負責打理好這一切,包括版本的 check,安裝的過程中若有需要也會尋問 user 是否 replace DLL。 |
- | 如果只想要一個執行檔,比如只用 printf 或者你是用組合語言開發的,只用到一些 OS 就會提供的 DLL,可能就不大需要 install,但通常越高階的語言或開發工具就越會有 dependency 的問題,而且通常也會越複雜。 | + | 如果只想要一個執行檔,比如只用 printf 或者你是用組合語言開發的,只用到一些 OS 就會提供的 DLL,可能就不大需要 install,但通常越高階的語言或開發工具就越會有 dependency 的問題,而且通常也會越複雜。 |
-- | -- |