日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

VS2008下编的程序生成的EXE 在没有安装VS2008的计算机上能运行

發布時間:2024/10/8 编程问答 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 VS2008下编的程序生成的EXE 在没有安装VS2008的计算机上能运行 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

我的系統是VISTA 用VS2008編的一個程序RELEASE生成的EXE文件 傳給別人的XP系統用VC6的電腦就不能打開 為什么?
我能夠打開XP下VC6編的程序

?

解決辦法:

修改你VC項目的屬性:常規選項中“MFC的使用”這里不要選擇“在共享DLL中使用MFC”要選擇“在靜態庫中使用MFC”,然后重新編譯。

參考:

VC2005運行庫文件?
隨著Visaul Stdio 2005的發布,VC++ 2005也有部分同學在使用,可是往往編寫的程序不能在其他電腦中執行,有些只能發布成靜態連接庫的形式發布,現在大家可以下載vc++2005的運行庫,約2.6Mb,相對26MB的.net 運行庫要小多了,這樣大家以后的程序可以大大減肥了!?

另附上:

VC2005編譯出來的程序文件,采用了manifest方式來指定dll文件。對于win98、win2000系統,把exe文件和VC的 dll連接庫放到一起就成了。對于winxp、win2003系統就要麻煩的多了,VC的連接庫默認是被放到了winsxs目錄下,結果造成在這些系統上,直接拷貝exe文件,往往是不能運行(找不到msvcr80.dll、mfc80.dll文件等),或者在事件日志中報錯。

解決方式:
方式一、在目標系統上安裝2005版vcredist_x86.exe。

方式二、直接拷貝VS8目錄下的VC \ redist \ x86 \? 目錄下的 Microsoft.VC80.MFC、Microsoft.VC80.CRT、Microsoft.VC80.MFCLOC幾個文件夾,到exe所在的目錄下,目錄結構如下:
.\myapp.exe
.\myapp.dll
.\Microsoft.VC80.CRT\
.\Microsoft.VC80.MFC\
.\Microsoft.VC80.MFC\Microsoft.VC80.MFCLOC\
然后修改Microsoft.VC80.MFCLOC目錄下的Microsoft.VC80.MFCLOC.manifest文件,將其中的version="8.0.50727.42",修改為version="8.0.50608.0"。


方式二的目錄結構,在xp和2003下是沒有問題的,但是在win98/win2000中,因為exe和dll不在同一目錄下,就會出現找不到dll的問題。
有什么更好的解決呢?呵呵,國外的一個大牛(http://blog.kalmbachnet.de)找到一絕招:

方式三、
? 1、首先編譯myapp.exe的時候,在配置中,選擇生成單獨的manifest文件,如:myapp.exe.manifest。
? 2、將myapp.exe、myapp.exe.manifest拷貝到一個目錄下
? 3、將Microsoft.VC80.MFC、Microsoft.VC80.CRT、Microsoft.VC80.MFCLOC幾個目錄下的文件,都拷貝到myapp.exe所在的目錄下。
? 4、將Microsoft.VC80.MFCLOC.manifest文件中的version="8.0.50727.42",修改為version="8.0.50608.0"。
? 5、編輯myapp.exe目錄下的所有 .manifest文件,將文件中的publicKey鍵值刪除,一般是publicKeyToken="1fc8b3b9a1e18e3b"
? 6、然后運行myapp.exe看看,嗯。


網友回復:首先你要用depends看看你的程序依靠哪些dll,比如依靠msvcr80.dll、msvcp80.dll、mfc80u.dll?
那么你需要這樣發布:?

/***************************************?
yourapp.exe?
msvcr80.dll?
msvcp80.dll?
mfc80u.dll?
Microsoft.VC80.CRT.manifest?
Microsoft.VC80.MFC.manifest?
other_thirdparty.dll?
****************************************/?

這些文件必須在同一目錄下,?
Microsoft.VC80.CRT.manifest和Microsoft.VC80.MFC.manifest?
可以分別在?
Program Files\Microsoft Visual Studio 8\VC\redist\x86\Microsoft.VC80.CRT?

和?
Program Files\Microsoft Visual Studio 8\VC\redist\x86\Microsoft.VC80.MFC目錄下找到

轉載于:https://www.cnblogs.com/hgy413/archive/2011/08/05/3693738.html

總結

以上是生活随笔為你收集整理的VS2008下编的程序生成的EXE 在没有安装VS2008的计算机上能运行的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。