George World

          技術改變明天,創新塑造未來! i(at)huadev.com Follow Me: http://t.sina.com.cn/georgeworld

            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
            28 隨筆 :: 0 文章 :: 5 評論 :: 0 Trackbacks
          出現這個問題,多半是因為編譯dll項目時,選擇“代碼生成”方式是“多線程 DLL(/MD)”,這樣的生成方式,生成的.dll文件必須依賴Visual Studio的一些動態鏈接庫,換成“多線程(/MT)”方式,可以解決問題,此時生成的.dll文件會比較大,可以部署在普通的windows機器上。

          操作過程如下:


          轉載相關文章:
          [VS2005]解決“由于應用程序的配置不正確,應用程序未能啟動,重新安裝應用程序可能會糾正這個問題”
             今天在準備發布用VS2005寫的那個程序時,拷貝到我同事機器上,雙擊突然出現了“由于應用程序的配置不正確,應用程序未能啟動,重新安裝應用程序可能會糾正這個問題“,這個問題很讓我意外,以前只出現過缺少DLL的情況,而這次出現這個問題,讓我一時沒辦法。想想,無非是兩個原因引起的,要么是他沒有安裝VS2005的原因,要么是我的程序里依賴了其它的一些庫。于是百度一下,發現好多相關主題。我是按照這個帖子解決的:

          在VS2005下用C++寫的程序,在一臺未安裝VS2005的系統上,
          用命令行方式運行,提示:
          “系統無法執行指定的程序”
          直接雙擊運行,提示:
          “由于應用程序的配置不正確,應用程序未能啟動,重新安裝應用程序可能會糾正這個問題”

          以前用VC6和VS2003的話, 如果缺少庫文件,是會提示缺少“**.dll”,但是用VS2005卻沒有這樣的提示。

          自己實驗了一下,感覺以下幾種解決辦法是可行的:
          方法一:
          在類似C:\Program Files\Microsoft Visual Studio 8\VC\redi
          st\Debug_NonRedist\x86\Microsoft.VC80.DebugCRT 下找到了下列文件:

          msvcm80d.dll
          msvcp80d.dll
          msvcr80d.dll
          Microsoft.VC80.DebugCRT.manifest

          把這幾個文件拷貝到目標機器上,與運行程序同一文件夾或放到system32下,就可以正確運行了。

          其他release版、MFC程序什么的都是拷redist下相應文件夾下的文件就可以了,文件夾后都有標識!

          方法二:
          修改編譯選項,將/MD或/MDd 改為 /MT或/MTd,這樣就實現了對VC運行時庫的靜態鏈接,在運行時就不再需要VC的dll了。

          方法三:

          工程-》屬性-》配置屬性-》常規-》MFC的使用,選擇“在靜態庫中使用mfc”
          這樣生成的exe文件應該就可以在其他機器上跑了。

          方法四:

          你的vc8安裝盤上找到再分發包vcredist_xxx.exe和你的程序捆綁安裝

          posted on 2010-03-05 21:16 George-tech 閱讀(3473) 評論(0)  編輯  收藏 所屬分類: C++.VC

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 玛多县| 三原县| 长阳| 盐津县| 万年县| 乃东县| 高邮市| 冕宁县| 沿河| 托克逊县| 达拉特旗| 定安县| 石渠县| 菏泽市| 衢州市| 南皮县| 宝兴县| 遂川县| 武邑县| 荔波县| 衡南县| 富裕县| 易门县| 苏尼特右旗| 同心县| 阳谷县| 榆中县| 临邑县| 洛川县| 林西县| 正镶白旗| 东丽区| 桓台县| 横山县| 兴和县| 辉县市| 齐河县| 怀化市| 乐陵市| 定远县| 长海县|