[心得] VC++ 2005之後版本執行檔不能執行問題

看板C_and_CPP (C/C++)作者 (Sennin32)時間16年前 (2009/09/20 19:56), 編輯推噓9(909)
留言18則, 5人參與, 最新討論串1/1
好像沒有人PO相關解法,分享一下,我只是小嫩嫩,有錯誤的話請不吝指正 VS 2005 與 VS 2008 之後的版本 都會有一個問題: 輸出的執行檔在沒有安裝VS 2005 或 VS 2008的電腦下無法執行 這是因為該電腦中並沒有所需的DLL的關係 我今天終於灌好VS 2008有東西能用了(confiker病毒超機掰害老子我重灌) 這篇文章告訴大家怎麼樣能讓他正常執行 因為我的環境是英文版(下載時只有殘體中文跟英文能選只好選英文) 所以中文名詞是依照我的印象打的可能有誤 ------------------------------------開始了------------------------------------ 前言: 沒有特別說明的話,設定畫面的開法都是: Solution Explorer(方案瀏覽器)->你的專案/方案 上點右鍵->properties(設定) 一開始我們要先更改組態設定,將預設的除錯(Debug)改為發佈(Release) 這時候會因為你是選擇方案或是專案而有不同的操作 1.方案設定 : Configuration Propreties->Configuration 這時候你所有的專案會被列在一個表中,這個表有專案名稱.組態.平台.已建置 這四個欄位,在Configuration(組態)這欄選擇release(預設應該是Debug) 2.專案設定 : Configuration Propreties->Configuration(在視窗左上角下拉式選單) 同樣改成Release即可 將組態設定完成之後,我們有兩個方法可以進行接下來的工作 這兩種方式是截然不同的 1.在想執行的電腦上安裝VC++ 2005 或 VC++ 2008可轉散發套件,這樣電腦中缺少的DLL 就都有了! 2005 : http://0rz.tw/e55dr 2008 : http://0rz.tw/GBwSd 2.將這些程式碼都編進我們的二元碼檔案中,這樣會造成二元碼的大小變大 方法如下 : 專案設定 : Configuration Propreties->Code Generation->Runtime Library 在下拉式選單選擇 Multi-Threaded(/MT) 或 Multi-threaded Debug(/MTD) 這樣我們所編繹出來的程式便不會使用DLL,而是在編譯時就將程式碼全部放入二元碼 中,用這個方法會有某些函式是不能使用的(像AFX函式好像一堆不能用吧),但這些函 式 通常有功能一模一樣的其他函式能代替,如果出現錯誤就換一個吧 一樣的,這兩種方式擇一即可,但是如果多幾個(2)的方式產生的執行檔,其實浪費的空間就 比(1)大很多了,而"很多"也頂多4.5個就超過了,所以如果可以的話就用方法(1)吧 閒著沒事做的人可以用VS2005做個安裝檔(等有空再說說怎麼做吧)把這些東西都包進去或 是包個連結(不知道可不可以),然後弄個選單(不知道VS2005能不能直接做,沒試過)讓使用 者選擇是否安裝或下載甚至自己檢查登錄檔,沒安裝過的話就安裝(我還是沒做過XD) -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 124.10.69.94

09/20 21:41, , 1F
請 google 查一下 Microsoft.VC80.CRT 謝謝
09/20 21:41, 1F

09/20 22:54, , 2F
到底想要表達什麼??? o_Oa
09/20 22:54, 2F

09/20 23:12, , 3F
只是整理一下, 用VC寫的程式拿到沒有裝VC的環境會遇到程
09/20 23:12, 3F

09/20 23:12, , 4F
式初始化失敗, 的兩種常見的解決方法罷了....@_@"
09/20 23:12, 4F

09/20 23:13, , 5F
題外話, 有裝VC又另外裝VC Dist不知道是不是會有問題,
09/20 23:13, 5F

09/20 23:13, , 6F
我的防火牆軟體安裝VC2005 Dist時一定會發生error, 直到
09/20 23:13, 6F

09/20 23:14, , 7F
它們改版幫我裝VC2008 Dist後就順利裝完了; PS. 我的電
09/20 23:14, 7F

09/20 23:14, , 8F
腦裡有VC 2005; XP SP3, Win Update除了IE/WMP都裝了@@"
09/20 23:14, 8F

09/20 23:23, , 9F
所以我的方案不被納入阿 ...0rz 明明是最常見的作法
09/20 23:23, 9F

09/20 23:29, , 10F
google到第一個MSDN的結果, 可是說真的看起來好像很麻煩
09/20 23:29, 10F

09/20 23:30, , 11F
說@_@" 寫程式的這端改個project屬性, 或者要run的那端
09/20 23:30, 11F

09/20 23:30, , 12F
裝個VC Dist, 感覺比一點一點慢慢查省事的多啊....Orz
09/20 23:30, 12F

09/20 23:45, , 13F
直接複製 VC\redist\x86\Microsoft.VC80.CRT 的資料夾阿
09/20 23:45, 13F

09/20 23:45, , 14F
在 C:\Program Files\Microsoft Visual Studio 8.0 裡面
09/20 23:45, 14F

09/20 23:48, , 15F
簡單講 請參考 WOW 的作法
09/20 23:48, 15F

09/21 00:37, , 16F
原來是這個意思啊, 不到1.6M的檔案, 這招也不錯XD
09/21 00:37, 16F

09/22 15:42, , 17F
我都用 wowtiger 的做法, 超級方便
09/22 15:42, 17F

09/28 20:19, , 18F
請問WOW的作法是要複製到哪個位置?
09/28 20:19, 18F
文章代碼(AID): #1AjXXhZb (C_and_CPP)
文章代碼(AID): #1AjXXhZb (C_and_CPP)